#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;
}
静态成员与基类
最新推荐文章于 2024-04-08 00:00:00 发布