C++语言程序设计

如果静态成员函数访问了非静态数据成员会出现怎样的错误并说明原因。

题目

如果静态成员函数访问了非静态数据成员会出现怎样的错误并说明原因。

参考答案和解析
正确答案:将提示非法操作,静态成员函数无法访问非静态数据成员。由于静态成员函数不与任何类的对象相联系,故不能对非静态成员进行默认访问。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

关于静态成员,正确的说法是()。

A、静态成员函数可以直接访问该类中的非静态成员

B、非静态成员函数不能直接访问该类中的静态成员

C、静态数据成员同其它数据成员一样通过构造函数进行初始化

D、静态成员在任何对象创建之前就已经创建


参考答案:D

第2题:

在类的静态成员函数的实现体中,可以访问或调用()。

A、本类中的静态数据成员

B、本类中非静态的常量数据成员

C、本类中其它的静态成员函数

D、本类中非静态的成员函数


参考答案:AC

第3题:

●静态成员函数仅能访问 (33) 。静态数据成员的初始化必须在 (34) 。

(33) A.静态的数据成员

B.非静态的成员函数

C.非静态的数据成员

D.以上都不对

(34) A.类内

B.类外

C.在构造函数内

D.静态成员函数内


正确答案:A,B
【解析】静态数据成员的访问方式是:类名::静态数据成员名。
但是,不能直接访问私有的数据成员。
静态数据成员的初始化必须在类外,例如:
class A
{
static int i:
public:
//.....
};
静态数据成员i的初始化方法为:"int A::i=1;"。可见:它与全局变量的初始化的方法的不同之处在于,有类名和作用域分隔符指定i的范围。

第4题:

类中的非静态成员函数不能访问类的静态数据成员。


正确答案:错误

第5题:

静态成员函数仅能访问(33)。静态数据成员的初始化必须在(34)。

A.静态的数据成员

B.非静态的成员函数

C.非静态的数据成员

D.以上都不对


正确答案:A

第6题:

下列关于this指针的说法,错误的是()。

A.静态成员函数中可以通过this指针访问非静态成员

B.在成员函数中对非静态数据成员的访问是通过this指针完成的

C.this指针指向当前正在操作的对象

D.this指针只存在于非静态成员函数中


正确答案:A

第7题:

()只能访问静态成员变量,静态成员函数和类以外的函数和数据不能访问类中的非静态成员变量。

A、静态函数

B、虚函数

C、构造函数

D、静态成员函数


参考答案:A

第8题:

静态数据成员在定义或说明时,要在前面加上关键字【 】;静态成员函数的实现中,不能直接引用类中说明为非静态的成员。


正确答案:statiC
statiC

第9题:

______成员函数中不能直接引用类中说明的非静态成员。


正确答案:静态
静态

第10题:

C#的构造函数分为实例构造函数和静态构造函数,实例构造函数可以对()进行初始化,静态构造函数只能对静态成员进行初始化。

  • A、静态成员
  • B、静态成员和非静态成员
  • C、非静态成员
  • D、动态成员

正确答案:B

更多相关问题