C++继承类静态成员处理

class A

{

public:

     static string name;//父类静态函数

public:

     static void add()

{

cout<<"打印小明"<<endl;

}

}

string A::name="小明";//外部赋值A类对象

class B:public A//继承父类A

{

public:

   static string name;//父类同名静态属性

public:

   static void add()//父类同名静态函数

{

cout<<"打印小红"<<endl;

}

}

string B::name="小红";//外部赋值B类对象

int main()

{

B b;

cout<<b.name<<endl;//通过对象访问B类静态成员,结果为小红

cout<<b.A::name<<endl;//通过对象访问A类静态成员,结果为小明

cout<<B::name<<endl;//通过子类名来访问子类类静态成员,结果为小红

cout<<B::A::name<<endl;//通过子类名来访问父类作用域的静态成员,结果为小明

b.add();//通过对象调用静态函数,结果为打印小红

b.A:add();//通过对象调用父类静态函数,结果为打印小明

B:add();//通过子类名调用子类静态函数,结果为打印小红

B:A:add();//通过子类名调用父类作用域的静态函数,结果为打印小明

注意事项:继承函数时,出现同名,子类会隐藏父类同名函数

}

猜你喜欢

转载自blog.csdn.net/qq_40776805/article/details/108444374
今日推荐