静态成员与基类

来源:互联网 发布:javascript入门适合看 编辑:程序博客网 时间:2024/05/22 17:09
#include <iostream>using namespace std;class A{public:static std::size_t object_count(){return 100;}protected:static const std::size_t obj_count = 80;};// 基类中的static 成员,在整个继承层次中只有一个实例,class B : public A{public:void f(const B &b, B *b2){cout << A::obj_count << endl; // 这个是派生类中的访问static成员的方法,基类名::成员名,cout << B::obj_count << endl; // 派声明::成员名,cout << b.obj_count << endl;  // 对象点成员,或者是指针->成员名cout << b2->obj_count << endl;cout << obj_count << endl;   // 成员名,   cout << A::object_count() << endl;cout << B::object_count() << endl;cout << b.object_count() << endl;cout << b2->object_count() << endl;cout << object_count() << endl;}};class C : public B{public:void f(const C &b3, C *b4){cout << A::obj_count << endl; // 这个是派生类中的访问static成员的方法,基类名::成员名,cout << B::obj_count << endl; // 派声明::成员名,cout << b3.obj_count << endl;  // 对象点成员,或者是指针->成员名cout << b4->obj_count << endl;cout << obj_count << endl;   // 成员名,   cout << A::object_count() << endl;cout << B::object_count() << endl;cout << b3.object_count() << endl;cout << b4->object_count() << endl;cout << object_count() << endl;}};int main(){B c;c.f(c, &c);C d;d.f(d, &d);return 0;}

0 0
原创粉丝点击