首页 > 试题广场 >

下列有关静态成员函数的描述中,正确的是?

[单选题]
下列有关静态成员函数的描述中,正确的是:
  • 静态数据成员(非const类型)可以在类体内初始化
  • 静态数据成员不可以被类对象调用
  • 静态数据成员不受private控制符作用
  • 静态数据成员可以直接用类名调用
推荐
答案:D
A,静态成员属于类,而不是属于某个特定的对象,它是由该类的所有对象共享的,因此不能在类的构造方法中初始化
B,静态成员属于该类所有对象公有,可以被类对象调用
C,静态成员收private的限制
D,静态成员属于类和该类的所有对象,可以用类名直接调用
编辑于 2015-01-26 20:13:31 回复(2)
http://blog.csdn.net/wangdd_199326/article/details/76199807可以参考看看。 我感觉这道题***,问题出的关于静态成员函数,可是选项都是关于静态数据成员。根据选项都是关于数据成员的,我就分析静态数据成员的。A 中说法不严谨,根据p270的c++ primer,可以为静态成员提供const整数类型的类内初始值,姑且认为A不正确。因为p270也提到了,静态数据成员不属于类的任何一个对象,不能由类的构造函数初始化,不能在类内部初始化静态成员。 p269静态成员可以是public,private的。所以C错。p269的代码,类的静态成员存在于任何对象之外,对象中不包含任何与静态数据成员有关的数据,静态数据成员这个可以被类的对象共享。所以B错。
编辑于 2017-08-01 20:54:53 回复(0)
答案:D
解析:
A:static数据成员在类的内部声明,但只能在类的外部定义,同时在定义时初始化,在类的外部不能再次指定static。(特例:当整型const static数据成员被常量表达式初始化时,就可以在类的内部声明时进行初始化);
B:静态数据成员属于类的所有实例(即对象),所有对象共享一份,在类被实例化时创建,通过类和对象都可以进行访问;
C:static成员实质上是加了“访问控制”的全局变量/函数,所以当然受访问控制符的控制;
D:同B的解析。
发表于 2018-12-31 15:23:16 回复(0)
常整形静态数据成员是可以在类中初始化的 static const int a=5;这是对的,其他的static变量都不行
发表于 2017-01-02 22:15:41 回复(0)
A 静态常量整型可以类内初始化
可以被类对象调用
C 静态成员受private的限制,静态成员可以是public,private的
可以用类名直接调用::
发表于 2017-08-22 15:59:54 回复(0)
答案有问题吧,如果d是对的话,那c也应该是对的,private的静态成员根本不能通过类名直接调用
发表于 2023-11-07 09:25:15 回复(0)
A 静态常量整型可以类内初始化 B 可以被类对象调用 C 静态成员受private的限制,静态成员可以是public,private的 D 可以用类名直接调用::
发表于 2022-05-19 09:01:48 回复(0)
第三次遇到静态数据成员
编辑于 2019-05-09 20:25:51 回复(0)
常整形静态数据成员是可以在类中初始化的 static const int a=5;这是对的,其他的static变量都不行
发表于 2017-09-22 10:07:18 回复(0)
A 静态常量整型可以类内初始化
B 可以被类对象调用
C 静态成员受private的限制,静态成员可以是public,private的
D 可以用类名直接调用::
发表于 2017-09-06 10:13:23 回复(0)
可见下面一篇详细带代码测试的博文
http://blog.csdn.net/morewindows/article/details/6721430
发表于 2015-07-07 20:10:32 回复(0)
D
静态数据成员属于当前类,故可以通过类名调用
发表于 2015-01-18 16:56:27 回复(1)