欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 新车 > c++基础三

c++基础三

2025/4/19 14:27:16 来源:https://blog.csdn.net/qq_43318374/article/details/147235568  浏览:    关键词:c++基础三

1.继承

继承表示,子类可以获取父类的属性和方法,然后可以写子类独有的属性和方法,或者修改父类的方法。类可以继承父类的公共成员(public),但不能继承私有成员(private),私有成员只能在父类内部访问。

1.1 案例一单继承

#include <iostream>using namespace std;
class friut
{
public:friut(){cout << "fruit constructor" << endl;}~friut(){cout << "fruit destructor" << endl;}void show(){cout << "fruit show" << endl;}};class Apple: public friut
{
public:Apple(){cout << "Apple constructor" << endl;}~Apple(){cout << "Apple destructor" << endl;}
};int main()
{Apple apple;apple.show();return 0;
}
//fruit constructor
//Apple constructor
//fruit show
//Apple destructor
//fruit destructor

通过上面的代码可以知道,子类apple继承了父类fruit公共属性,子类可以调用show方法。

1.2.1案例二多继承,各个父类成员变量不重名

#include <iostream>
using namespace std;class base1
{
public:int a;base1(int x){a = x;cout << "base1 constructor" << endl;}
};class base2
{
public:int b;base2(int y){b = y;cout << "base2 constructor" << endl;}
};class test:public base1, public base2
{
public:int c;test(int x, int y, int z):base1(x), base2(y){c = z;cout << "test constructor" << endl;}void show(){cout << "a: " << a << ", b: " << b << ", c: " << c << endl;}};int main()
{test t(1, 2, 3);t.show();return 0;
}
//base1 constructor
//base2 constructor
//test constructor
//a: 1, b: 2, c: 3

通过案例可以知道,test继承了base1, base2两个父类,并且拥有了两个父类的属性,这就是多继承。

1.2.3案例三多继承,各个父类成员变量重名

#include <iostream>
using namespace std;class base1
{
public:int a;base1(int x){a = x;cout << "base1 constructor" << endl;}
};class base2
{
public:int a;base2(int y){a &

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com