//继承
#include <iostream>
using namespace std;
class Parent
{
private:
int a;
protected:
int b;
public:
int c;
Parent()
{
a=1;
b=2;
c=3;
}
};
class Son1:public Parent //定义 继承类的方式 class 子类名:继承方式 父类名
{
public:
void print()
{
//cout<<"a:"<<a<<endl; err 父类私有的成员子类不能直接访问(可以用友元的方式)
cout<<"b:"<<b<<endl;
cout<<"c:"<<c<<endl;
}
};
class Son2:protected Parent
{
public:
void print()
{
cout<<"b:"<<b<<endl;
cout<<"c:"<<c<<endl;
}
};
class Son3:private Parent
{
public:
void print()
{
cout<<"b:"<<b<<endl;
cout<<"c:"<<c<<endl;
}
};
int main(void)
{
Parent parent;
Son1 son1;
Son2 son2;
Son3 son3;
//son1.b; son1是public类型访问,父类所有成员的性质不变,b是protected只能在本类或者子类访问,main函数不属于以上2种所以访问不了
son1.print();//但是可以通过son1中的public的print函数来访问b
return 0;
}
/*
public继承:父类成员在子类中保持原有访问级别
private继承:父类成员在子类中变为private成员
protected继承:父类中public成员会变成protected
父类中protected成员仍然为protected
父类中private成员仍然为private
*/
C++面向对象-继承笔记1
最新推荐文章于 2024-08-14 17:18:35 发布