有这样的一个类 class A { public: A(int i); const int& r;//设这个r有什么用?而且用 const int& r !是什么意思?常引用??? private: const int a; static const int b; }; const int A::b=10; A::A(int i):a(i),r(a){}//a不是常成员吗?不是常成员的赋值要在类外吗?
第二个问题: 常成员的赋值可以在类内,const int x=3;可以在任何地方写,只不过强调x不可以改变之而已。你想表达的是static的用法。 在c++中,采用静态数据成员是来解决同一个类的对象共享数据的问题。 静态数据的成员必须要在类的外部给出它的定义,定义时可以初始化。如: class A { int x,y; static int shared; public: A(){x=y=0;} ...... }; int A::shared=0; //静态数据成员的定义