继承的写法
//父类 基类
class parent
{
};
//子类 派生类
//公有继承
class soon1:public parent
{
public:
protected:
};
//保护继承
class son2:protected parent
{
public:
protected:
};
//私有继承
class son3:private parent
{
public:
protected:
};
//继承和派生
//继承:子类中没有产生新的属性和行为
//派生:派生类中有新的属性和行为产生
class 子类名:继承方式 父类名
{
};
//继承方式 就是权限限定词
继承实质与权限问题
- 继承的实质:父类的数据和成员子类中有一份
- 权限问题:继承方式只会增强父类属性在子类中的权限显示
public | protected | private | |
---|---|---|---|
public继承 | public | protected | 不可直接访问 |
protected继承 | protected | protected | 不可直接访问 |
private继承 | private | protected | 不可直接访问 |
#include<iostream>
#include<string>
using namespace std;
class parent
{
public:
void print()
{
cout << name << "\t" << money << endl;
}
string& getWide()
{
return wide;
}
protected:
string name;
int money;
private:
string wife;
};
//子类
class son :public parent
{
public:
void printSon()
{
print();
cout << name<<"\t"<<money<< endl;
//cout << wife << endl;父类中的私有属性不能直接访问
cout << getWide() <<endl;//间接通过父类的函数访问
}
protected:
};
class A
{
public:
int a1;
protected:
int a2;
private:
int a3;
};
class B :public A
{
public:
//int a1;
protected:
//int a2;
private:
//int a3;不能直接访问
};
class C :protected A
{
public:
protected:
//int a1; public 显示protected
//int a2;
private:
//int a3;不能直接访问
};
class D :private A
{
public:
void print()
{
cout << a1 << endl;;
cout << a2<< endl;
}
protected:
private:
//int a1; public 显示protected
//int a2;
//int a3;//父类的私有属性不能直接访问
};
//私有继承会导致当前父类 无法在孙子类有任何作用
class F :public D
{
public:
};
int main()
{
son boy;
boy.printSon();
B b;
b.a1 = 123;
C c;
//c.a1 = 12;
return 0;
}
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程学习网的更多内容!
织梦狗教程
本文标题为:C++的继承和派生你了解吗


基础教程推荐
猜你喜欢
- centos 7 vscode cmake 编译c++工程 2023-09-17
- 带你深度走入C语言取整以及4种函数 2022-09-17
- C++实战之二进制数据处理与封装 2023-05-29
- C语言 详解字符串基础 2023-03-27
- C语言编程C++旋转字符操作串示例详解 2022-11-20
- C语言实现宾馆管理系统课程设计 2023-03-13
- [c语言-函数]不定量参数 2023-09-08
- C++实现ETW进行进程变动监控详解 2023-05-15
- [C语言]二叉搜索树 2023-09-07
- 全面了解C语言 static 关键字 2023-03-26