C++面向对象编程 继承和派生
2015-01-20 16:36
239 查看
C++面向对象编程
继承是保持原有类的基础上进行扩展继承关系具有双重关系作用:
1)作为类的构造机制, 继承通过扩充, 组合现有的类来构造新的类
2) 作为类型的构造机制, 如归B继承A则所有要求对象A类型的地方也可以接受B类型的方法
派生类的概念
1)有一个基类派生的继承称作是单继承
2) 从多个基类派生的继承称作是多继承
1、 单继承
class 派生类名:继承方式 类名
{
派生类新定义成员;
};
eg .
class A
{
}
class B: public A
{
//类B新添加的成员函数
}
2、多继承
class 派生类名:继承方式1 , 继承方式2 基类名2 ,.....
{
//派生类新定义的方式
};
eg.
class A
{
//类的成员
}
class B
{
//类的成员
};
class C: public A , private B
{
//类C新添加的成员
};
派生类的生成过程:
1)吸收 基类成员
2)改造基类成员
3)添加新的成员
继承方式 :
1)公有继承
2) 保护继承
3) 私有继承
公有类继承:
#include<iostream> using namespace std; class A { public : int x; }; class B :public A { private: int y; protected: int z; public: int m; void setvalue(int a, int b, int c, int d) { x = a; //继承在类下因此B中依然有共有成员x y = b; //这里是说的是公有继承 z = c; m = d; } void disp() { cout<<"y = "<<y<<endl; cout<<"x = "<<x<<endl; } }; int main() { B obj; obj.setvalue(1,2,3,4); obj.disp(); return 0; }
私有继承:
#include<iostream> using namespace std; class A { private: int x; public : void setx(int i){ x = i;} void dispx(){cout<<"x = "<<x<<endl;} }; class B: private A { //私有继承 派生类的对象可以直接访问它们, 但是在类外部通过派生类的对象无法访问它们 private: int y; protected: int z; public: int m; void setvalue(int a, int b, int c, int d) { setx(a) ;//继承上面的类,下面可以进行直接调用 y = b; //private protect 在类的内部是可以直接调用的 z = c; m = d; } void disp() { dispx();//直接调用 cout<<"y = "<<y<<endl; cout<<"z = "<<z<<endl; } }; int main() { B obj; obj.setvalue(1,2,3,4); obj.disp(); obj.m = 4; //直接对共有数据成员进行赋值操作 cout<<"m = "<<obj.m<<endl; return 0; }
相关文章推荐
- C++面向对象编程 继承和派生
- C++学习6-面向对象编程基础(运算符重载、类的派生与继承、命名空间)
- C++之继承与派生(1)
- [C++程序语言设计笔记一]面向对象编程抽象,继承,重写基本介绍
- c++基础(继承与派生)
- 谭浩强C++程序设计第11章继承与派生
- C++学习摘要之三:继承和派生 .
- C++的派生和继承
- C++第十二周【任务2】定义Teacher(教师)类和Cadre(干部)类,采用多重继承方式由这两个类派生出新类Teacher_Cadre(教师兼干部)。
- C++面向对象笔记:继承、派生
- c++继承与派生
- c++中继承和派生在内存的布局
- C/C++学习----第二章 继承和派生
- c++继承与派生
- C++之继承与派生(2)
- C++学习摘要之三:继承和派生
- C++学习手记(二)——类的继承与派生
- C++继承与派生
- C++第十周【任务3】类的继承和派生
- c++继承与派生