今日在看《c/c++程序员面试秘笈》时,有如下题,
p173面试题:对静态数据成员的正确描述是:
A.静态数据成员可以在类体内进行初始化
B.静态数据成员不可以被类对象调用
C.静态数据成员不受private控制符作用
D.静态数据成员可以直接用类名调用
这里答案给的是CD,对于C有所疑问,于是写下如下代码进行测试:
#include <iostream>
#include <conio.h>
using namespace std;
class test
{
public:
static int i;
test() {}
void print();
private:
static int j;
};
int test::i = 0;
int test::j = 0;
void test::print()
{
cout << "i = "<< i << endl;//对比参照项1
cout << "j = "<< j << endl;//对比参照项2
}
int main()
{
test t;
t.print();
cout << "i = "<< t.i << endl;//对比参照项3
cout << "j = "<< t.j << endl;//测试是否可以不受private作用
getch();
return 0;
}
编译平台是win10+vs2015
结果是报错
- cout << "j = "<< t.j << endl;
于是可知C选项错误,这是这本书上的失误