(八)继承

前言:本章节依然仅仅总结与java语言的不同之处,相同点不会总结,如果要查看全部资料可以通过http://pcedu.pconline.com.cn/videoedu/asp/0906/1682266_1.html看c++基础的学习视频

C++中对于继承分为单一继承和多重集成.只有一个基类的叫单一继承,拥有多个基类的叫多重继承,
而在java中extends 只可以有一个,相对于implement可以有多个。

java中的子类,在c++中又称为派生类

在c++中当你声明一个派生类时,你可以通过在类的名字后面加一个冒号(:)来表示它是从哪个类派生出来的
例:
Class 派生类:public 父类
注意: public代表的是派生的类型,也可以声明为私有(private),后面跟基类的名字

 多重继承

c++中有两种继承,单一继承和多重继承。只有一个基类的叫单一继承,拥有多个基类的叫多重继承
例如(继承两个类的写法)
class Son:public Father,public Mother

另外,多重继承允许分别设置基类的派生权限。
例如:
class Son:public Father,private Mother
这样子类Son就是从Father类公有派生,从Mother类私有派生。
这样从Father类集成来的所有成员在子类中权限保持不变,也就是说原来是公有的还是公有,原来是私有的还是私有。
而Mother类的所有成员在Son中就变成私有,更加精准的说法是,Mother类的公有成员和保护成员被Son类继承后变成了私有,而私有成员则变成不可访问的成员

继承的构造和析构

#include <iostream>
using namespace std;
class father
{
public:
  father(){cout<<"构造父类对象\n";}
  ~father(){cout<<"析构父类对象\n";}
};
class son:public father
{
public:
  son(){cout<<"构造子类对象\n";}
  ~son(){cout<<"析构子类对象\n";}
};
int main()
{
  son Jack;
  return 0;
}
根据输出可以看出先构造的是父类对象,而析构时是先析构子类。

 

posted @ 2013-03-21 11:16  王世桢  阅读(257)  评论(0编辑  收藏  举报