C+笔记八十三:继承中的static关键字

依法编程Autocodes

欢迎各位小伙伴关注”依法编程“,一起交流

一、基础知识

1、基类定义的静态成员,将被所有派生类共享。也就是说在任意一个对象中修改了静态成员变量的值,在其他对象中这个变量的值也会修改。

2、根据静态成员自身的访问特性和派生类的继承方式,在类层次体系中具有不同的访问性质(遵守派生类的访问控制)。也就是说,我们之前谈到的成员变量的访问控制与继承时的访问控制相结合来确定基类的成员在派生类中的可见性的规则,对于静态成员变量也是相同的。

3、派生类中访问静态成员,用以下形式显式说明:

类名::成员

或通过对象访问 对象名.成员

因此,在一个类中声名了静态成员变量,在接下来就需要给这个静态成员变量赋值。

程序:

#include

usingnamespacestd;

classAnimal

{

public:

Animal()

{

}

voidoutput()

{

cout

}

public:

staticinta;

intb;

protected:

private:

};

intAnimal::a=100;

classDog:privateAnimal

{

public:

Dog()

{

}

voidoutputA()

{

cout

a++;

}

public:

protected:

private:

};

intmain()

{

Dog dog;//dog对象中修改a的值

dog.outputA();//输出100

Animal animal;//animal对象中输出新的a的值

animal.output();//输出101

system("pause");

return0;

}

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181019A0QGIC00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券