c++学习之继承
来源:互联网 发布:兄弟连java 怎么样 编辑:程序博客网 时间:2024/05/20 16:13
等到学习完c++的继承,发现c++和java差不多在继承设计上功能是差不多的,不过c++的继承分为public,protected,private三种类型。继承,顾名思义,就是子类拥有父类的一切。不过如下这三项不会被继承。首先是构造函数与析构函数,私有成员和方法,最后就是父类的友元不会被继承。
再说说public继承,该方式会继承除了以上三项,其他都会继承的一种方式。
protected继承,该方式会继承除了以上三项,外加public成员也不会被继承的一种方式。
private继承,说白了,就是父类是父类,子类子类,什么都继承不了。private继承很坑爹呀...
举个例子说明继承的使用吧。
1 我们建立一个BaseClass.h的头文件,里面对父类BaseClass进行声明。
class BaseClass{protected:int x;int y;public:BaseClass();BaseClass(int a,int b);void area();};
2 建立一个BaseClazz.cpp的源文件,里面是对父类BaseClass的完整定义。
#include <iostream>#include <string>#include "BaseClass.h"using namespace std;BaseClass::BaseClass(){x = 1;y = 2;}BaseClass::BaseClass(int a,int b){x = a;y = b;}void BaseClass::area(){cout << x*y << endl;}
#include "BaseClass.h"class DeriveClass1:public BaseClass{private:int z;public:void area();void setValue(int a);};
4 建立一个DerivedClass1.cpp的源文件,用来对子类进行完整定义。
#include <iostream>#include "DeriveClass1.h"using namespace std;void DeriveClass1::area(){cout << x*y*z << endl;}void DeriveClass1::setValue(int a){z = a;}
5 好了,开始测试一下子类的功能吧。建立一个Main.cpp的文件。
#include <iostream>#include "DeriveClass1.h"using namespace std;int main(){DeriveClass1 dc;dc.setValue(3);dc.area();return 1;}
6说明,dc.setValue()设置了成员函数z的值,area()函数打印了x*y*z的值。可想而知,结果应该是6。因为子类初始化的时候,父类的构造函数也是会运行的。
7 另外需要说明的是,c++是支持多重继承的。这里就不举例子了。
- Object-C: 学习实例之继承
- Objective-C学习 继承之僵尸练习
- 一步一步学习C++(类)之继承与派生
- object-c之继承
- Object-C之继承
- 【C++】:C++之继承
- objective-c之继承
- C ++之继承浅析
- C++学习之继承
- java学习之继承
- c++学习之继承
- java学习之--继承
- java学习之继承
- Java学习之继承
- Swift学习之继承
- Java学习之继承
- Java学习之继承
- oc学习之继承
- hdu 4647 - Another Graph Game(思路题)
- linux内核分析笔记----虚拟文件系统(上)
- UVA 11636 - Hello World!
- uva 307 Sticks(DFS+ 剪枝)
- 自定义标签
- c++学习之继承
- 程序员的十楼层。看看自己在第几层。很有意思的文章!绝对给力!
- C++ 文件的复制、删除、重命名
- 老师讲的消息机制
- android组件间的交互和进程间IPC通信
- fopen函数报错
- 研究生该培养的能力
- QT程序错误:collect2:ld returned 1 exit status
- static和inline解析