zoukankan      html  css  js  c++  java
  • C++_继承

      C++支持单继承和多继承,并提供3类继承:public、private及protected。在public继承中,每个派生类对象都是基类对象,反之基类对象却不是派生类对象。派生类成员无法直接访问基本的private成员,只能通过继承的public成员访问,但private基类成员仍然得到了继承(被视为派生类的一部分)。友元函数是不被继承的。

      基类的protected成员可以由基类所派生的类和友元访问。

    #include” Employee.h”
    class Manage : public Employee
    {…..};
    
    
    Manage ::Manage(const string& name, const string& ssn, double rate)
        : Employee(name, ssn)  //调用基类构造函数初始化
    {……}

      派生类构造函数使用成员初始化器将参数传递给基类的构造函数。C++要求派生类构造函数调用其基类的构造函数来初始化继承到派生类的基类的数据成员。若不显式调用,C++将尝试调用基类的默认构造函数,当基类不提供默认构造函数时,将产生编译错误。

      把基类数据成员声明为protected将节省调用函数设置继承的数据成员的开销。但将产生2个问题:安全性降低;派生类的成员函数的实现可能太依赖基类的实现,当基类中protected数据成员修改时,所有派生类中直接使用此数据成员的地方全部要改。如果可能的话,应尽量避免在基类中包含protected数据成员。

      重定义基类中的成员函数后,可以使用基类::成员函数名调用基类的成员函数(否则有可能造成对自身的无限递归调用)。

      派生类的对象被创建时,先调用并执行基类的构造函数,然后执行派生类的构造函数。派生类对象析构函数调用顺序,与相应的构造函数的调用顺序正好相反。派生类不会继承基类的构造函数、析构函数和重载的赋值运算符,但派生类的构造函数、析构函数和重载的赋值运算符可以调用基类的构造函数、析构函数和重载的赋值运算符。

  • 相关阅读:
    IE9 Beta首则演示视频泄露 狼人:
    浅析网页界面设计——首页设计 狼人:
    需警惕CSS3属性的书写顺序 狼人:
    IE9 Beta与四大浏览器基准测试对比 狼人:
    Ubuntu 9.04将在10月23日停止更新服务和技术支持 狼人:
    IE9对CSS3的支持情况概述 狼人:
    ASP.NET惊爆新安全漏洞 攻击者可访问任意文件 狼人:
    Rails3之父Yehuda离开Engine Yard投奔HTML5 狼人:
    实用HTML,CSS和JavaScript速查表 狼人:
    20个学习CSS的绝佳网站——让你从入门到精通 狼人:
  • 原文地址:https://www.cnblogs.com/JesusAlone/p/4361210.html
Copyright © 2011-2022 走看看