静态数据成员受private控制符的作用

来源:互联网 发布:时间管理 知乎 编辑:程序博客网 时间:2024/06/08 17:21

今日在看《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

结果是报错

  1. cout << "j = "<< t.j << endl;  

于是可知C选项错误,这是这本书上的失误

1 0
原创粉丝点击