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

来源:互联网 发布:手机淘宝注册账号 编辑:程序博客网 时间:2024/05/17 02:55

第三十六讲 派生类

定义派生类格式

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'
}

 

 

原创粉丝点击