前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C++:40---继承中类成员的变化关系

C++:40---继承中类成员的变化关系

作者头像
用户3479834
发布2021-02-03 14:50:32
5150
发布2021-02-03 14:50:32
举报
文章被收录于专栏:游戏开发司机游戏开发司机

一、派生类继承基类成员的规则

  • ①派生类继承了基类的所有数据成员与函数(不论公有成员、保护成员、私有成员)
  • ②派生类虽然继承了基类的所有成员,但是能不能访问基类的成员还与父类成员的属性(public、protected、private)以及继承方式有关
  • ③类静态成员:如果基类定义了一个静态成员,那么该静态成员在整个继承体系中都存在。
    • 该静态成员只能定义一次,派生类不能再次定义
    • 一个类改变了静态成员的值,整个继承体系中的值都将改变
代码语言:javascript
复制
#include <iostream>
using namespace::std;
class A {
public:
static int a;
};
int A::a = 2;
class B:public A{
public:
//static int a; 错误,不能再次定义
};
int main()
{
A a;
B b;
b.a=1;
cout << b.a <<endl; //1
cout << a.a <<endl; //1
return 0;
}

二、演示案例

代码语言:javascript
复制
class A
{
public:
int a_data;
A(int data):a_data(data){}
void showA(){

}
protected:
int pro_data;
private:
int pri_data;
};
class B :public A
{
public:
int b_data;
B(int data) :A(data), b_data(data) {}
void showB(){}
};
  • 可以看到B公有继承于A,B可以在类内访问父类A的所有public、protected成员,但不能访问private成员
  • 由于父类的protected成员在子类中也是protected的,所以不能在外部直接使用
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-12-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 游戏开发司机 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、派生类继承基类成员的规则
  • 二、演示案例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档