阿牛哥C++笔记---7

本文详细介绍了C++中派生类的定义与使用,包括不同继承方式(public, protected, private)下基类成员的访问权限变化,以及派生类如何继承基类的不同成员类型。通过具体示例代码展示了继承机制的实际应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第三十六讲 派生类

定义派生类格式

class 派生类名:继承方式 基类名
{
 派生类函数;
 派生类数据;
};

继承方式:派生类如何继承基类的方法

public
protected
private
三种


class Cfather
{
public:
 void fatherskin();
protected:
 void childvisit();
private:
 int age;
}

说明一下protected的访问控制属性

可以被Cfather类,以及其派生类的成员访问,但不能够被

Cfather这个本类的对象及其派生类的对象访问,更不能被类

外面的其它成员和函数进行访问

将基类继承过来的

例如
class Cfather
{
public:
 void fatherskin();
private:
 int age;
};
class Cchild:public Cfather
{
public:
 void childskin();
private:
 char sex;
};

采用public继承方式来的基类的成员
public仍然是public
protected仍然是protected

有一点private什么继承方式都不会被继承

第三十七讲 派生类(二)

class Cfather
{
public:
 void fatherskin();
protected:
 char name[];
private:
 int age;
};
class Cchild:public Cfather
{
public:
 void childskin();
private:
 char sex;
};

当继承方式为public时候
继承来的public和protected的属性不发生变化

当继承方式为protected时
继承来的public和portected的属性都是protected

当继承方式为private时
继承来的public和portected的属性都是private

protected和private成员只能被本类的成员访问,不能被类外

的成员以及本类的对象访问

区别在于,派生类可以继承protected,不能继承private

public对任何对象公开
protected半公开,本类的成员,及继承类的成员公开,对类

对象就不能被访问

private是完全私有的
只能被本类的成员所访问,对派生类是不可见,对类外面的对

象也是不可见的

第三十八讲 实验 派生类

#include <iostream.h>

class Cparent
{
public:
 int x;
protected:
 int y;
private:
 int z;
};

class Cchild: public Cparent
{
public: 
 void visitx(int xx);
 void visity(int yy);
// void visitz(int zz);
};

class Csunzi: public Cchild
{
public:
 void visityy(int yy);
};

void Csunzi::visityy(int yy)
{
 y = yy;
}
void Cchild::visitx(int xx)
{
 x = xx;
}

void Cchild::visity(int yy)
{
 y = yy;
}
/*
void Cchild::visitz(int zz)
{
 z = zz;
}
*/
void main()
{
 Csunzi sn;
 sn.visityy(2);//能够被派生类的成员所访问
 Cchild cd;
 cd.y = 0; //'y' : cannot access protected

member declared in class 'Cparent'
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值