学习日志(十七)

继承与派生

1.继承实质和权限的理解

说明:对于继承:就子类而言:除了构造和析构函数外,父类有什么,子类就有什么【数据成员+成

员函数】

继承方式只会增强父类的属性在子类当中的权限呈现

父类当中私有属性,能被继承,但是不能直接访问(不可访问)

2.继承权限理解区分

/* 此处为父类/

class Person{

private:

string address;

string Id;

protected:

string name;

int age;

public:

string sex;

void print() {

cout << name << "\t" << age <<endl;

}

3.公有继承:

子类的各种限制和父类中各种限制相同

class Malel: public Person{

/*注意继承方式*/

private:

string address;

string Id;

protected:

string name;

int age;

public:

string sex;

void print(){

cout<< name << "\t" << age << endl;

}

};

int main() {

/*创建对象*/

Malel m1;

m1.sex ="男";

/*公有继承可以访问*/

m1.print();

/* 公有继承可以访问*/

return 0;

}

4.保护继承:

父类中公有属性,在子类中呈现为保护属性【其他不变】

class Male2 : protected Person{

/*注意继承方式*/

private:

string address;

string Id;

protected:

string name;

int age; /*注意变化:公有=>保护 */

//public:

string sex;

void print(){

cout << name << "\t" << age << end1;

}

};

int main(){

/* 创建对象 */

Male1 m2;

m2.sex ="男";

m2.print();

/*回顾类知识点的权限问题:

权限是对外的限制,类中无权限可言

如本例中,想要实现访问,可以重新在 public 属性下定义函数取调用父类中的函数/访问成员并返回*/

return 0;

}

5.私有继承:

父类中的非私有属性,在子类中呈现为 私有属性【其他不变】

特点:私有继承:断子绝孙特性

已经是私有继承了,该类再被继承,其子类相当于无可用内容

class Male2: protected Person{

/*注意继承方式*/

private:

string address;

string Id; /*注意变化:保护=>私有*/

//protected:

string name;

int age;

//public: /* 注意变化:公有=> 私有 */

string sex;

void print(){

cout << name << "\t" << age << endl;

}

};

/*如果想要访问,就在父类中提供对应访问内容的接口*/

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务