静态成员函数中不允许引用类的非静态成员,但可以访问对象中的非静态成员
2012-04-04 16:03
417 查看
代码如下:
#include<iosteam> class M { public: M(int a) { A = a; B+=a;//这里每调用一次构造函数不就重新刷新一次B了吗?用这种方法记录生成对象的个数?? } static void f1(M m); private: int A; static int B; }; void M::f1(M m) { cout<<"A="<<m.A;//在静态成员函数中,只能通过对象访问类的非静态成员 cout<<"B="<<B;//B是静态成员,可以在静态成员函数中访问 } int M::B=0;//一直不明白这里的B不是私有的吗?为什么可以直接访问?是因为这句话没有在任何函数中吗? void main() { M P(5), Q(10); M::f1(P); //访问静态成员函数,前面可以用类名或者对象名,下同 M::f1(Q); }
相关文章推荐
- 同一个类的不同对象,对象的成员函数可以互相访问各自对象的私有变量和私有成员函数
- 为什么c++中,有时可以用类名直接访问非静态成员函数?
- C++在类的成员函数中,允许直接访问该类的成员对象的私有成员变量
- 静态成员函数怎么引用该类中的非静态成员
- 因为成员函数属于同一个类的所有对象,所以在成员函数内可以访问同类其他对象的私有成员是合理的
- C/C++—— 除了用类成员函数访问类私有成员变量外,还可以通过类对象地址来直接访问和修改类的私有成员变量
- 静态成员函数为什么不能访问本类中的非静态成员?
- 结合上面的五个例子,对类的静态成员变量和成员函数作个总结: 一。静态成员函数中不能调用非静态成员。 二。非静态成员函数中可以调用静态成员。因为静态成员属于类本身,在类的对象产生之前就已经存在了,所
- 类成员函数可以访问相同类对象的私有对象
- C++中类的访问权限针对的是类而不是对象!(为什么类中的函数可以访问对象的私有成员?)
- C++在类的成员函数中,允许直接访问该类的成员对象的私有成员变量
- 静态成员函数不可以访问类中的成员变量
- c++中,可以用类名直接访问非静态成员函数?
- 通过指针访问类的静态成员函数
- 类中静态的方法、成员函数只能访问静态的数据成员或者静态的方法
- 在创建接口引用指向子类对象时,能否访问Object类中的方法?答案是可以的
- leetcode412+vector赋值+非静态成员引用必须与特定对象相对+vector的输出+operator<<+to_string
- C++的const类成员函数(解释为什么非const成员函数不能访问const对象的数据成员)
- C++静态成员函数访问非静态成员的几种方法
- C++ 静态成员函数可以使用类内的枚举值