先上代码
#include<iostream>
using namespace std;
class Animal{
public:
string name;
int age;
private:
double weight;
};
/*测试私有继承,Dog2和Xiudog2*/
//私有继承:自己可以拿到从父辈那里的public和protected遗产,
//但是私有继承就是很自私,自己从父辈哪里拿到的资产仅仅是自己用,
//绝对不给自己的孩子用
class Dog2 : private Animal
{
void run() {
this->age=11;
this->name="Dog2";
}
};
class XiuDog2 : public Dog2
{
void run(){
//this->age = 6;//报错
//this->name = "hei嘿";//报错
}
};
/*测试保护继承,Dog1和XiuDog*/
//保护继承:自己可以拿到从父辈那里的public和protected遗产,
//而且保护继承很无私,自己从父辈哪里拿到的资产 不仅仅 是自己用,
//也可以给自己的孩子用
class Dog1 : protected Animal
{
void run(){
this->name = "dog1";
this->age = 6;
}
};
class XiuDog : public Dog1
{
void run(){
this->age = 6;//正确
this->name = "hei嘿";//正确
}
};
/*测试公有继承,Dog*/
class Dog : public Animal
{
void run(){
this->name = "dog";
}
};
int main()
{
return 0;
}
保护继承简单总结
保护继承:
我从父亲那继承过来的public和protected成员,来到我这都变成protected,我的儿子公有继承我时,我儿子类的内部仍然可以使用我从我父亲那继承过来的成员
私有继承简单总结
私有继承:
我从父亲那继承过来的public和protected成员,来到我这都变成private,我的儿子公有继承我时,我儿子类的内部不可以使用我从我父亲那继承过来的成员
公有继承官方总结
公有继承时,基类中各成员属性保持不变,基类中private成员被隐藏.派生类的成员只能访问基类中通public/protected成员,而不能访问private成员;派生类的对象只能访问基类中的public成员.
保护继承官方总结
保护继承时,基类中各成员属性均变成protected,并且基类中private成员被隐藏.派生类的成员只能访问基类中的public/protected成员,而不能访问private成员;派生类的对象不能访问基类中的任何成员
私有继承官方总结
私有继承时,基类中各成员属性中private成员被隐藏.派生类的成员也只能访问基类中的public/protected成员,而不能访问private成员;派生类的对象不能访问基类中的任何成员.
其他
不知道什么是基类,什么是派生类,什么是成员,什么是基类对象,什么是派生类对象----->请看下边的代码示例:
#include<iostream>
using namespace std;
class Aniaml//Animal就是基类
{
public:
string name;
void run(){};//name和run就是成员
};
class Dog : public Aniaml//Dog继承了Animal,Dog就是Aniaml的派生类
{
void fun(){
this->name= "修狗";
}
};
int main(){
//何为对象?
Aniaml animal;
//animal就是(基类)对象,
//可以类比===>int a;
//Aniaml相当于一种类型,与int对应,即:类≈类型;
//animal相当与一个变量,与a对应,即:对象≈变量.
Dog dog;//dog就是Animal的派生类的对象
return 0;
}