zoukankan      html  css  js  c++  java
  • c++ 继承(二)

    不能自动继承的成员函数

      1、构造函数

      2、析构函数

      3、=运算符

    继承与构造函数

      1、基类的构造函数不被继承,派生类中需要声明自己的构造函数

      2、声明构造函数时,只需要对本类中新增成员进行初始化,对继承来的基类成员的初始化(调用基类构造函数完成)

      3、派生累的构造函数需要给基类的构造函数传递参数

       

    #include <iostream>
    using namespace std;
    
    class Base
    {
    public:
        Base(int b) : b_(b){
            cout<<"Base..."<<endl;
        }
        ~Base(){
            cout<<"~Base..."<<endl;
        }
        int b_;
    }
    
    class Derived : public Base
    {
    public:
        Derived(int d) : d_(d),Base(10){
            cout<<"Derived..."<<endl;
        }
        ~Derived(){
            cout<<"~Derived..."<<endl;
        }
        int d_;
    }
    
    int main(void)
    {
        Derived d(100);
        cout<<d.b_<<" "<<d.d_<<endl;
        return 0;
    }

    注意:

      1、基类没有默认构造函数的时候,基类的构造函数要在派生类构造函数初始化列表中调用

           类的对象成员没有默认构造函数的时候,只能够在类的构造函数初始化列表中调用该对象的构造函数进行初始化

      2、派生类对象的构造次序

        先调用基类构造函数、然后是派生类的对象成员的构造函数,最后是派生类自身的构造函数

    友元关系不能被继承

    A是B的友元类,C是A的派生类,那么C不是B的友元类

    友元关系时单向的,同时友元关系是不能被传递的

    A是B的友元类,B是C的友元类,那么A不是C的友元类

    静态成员无所谓继承

    被所有对象所共享

  • 相关阅读:
    react获取ref的几种形式
    vue与react的小区别
    vue当中计算属性重新计算依赖关系
    移动端常见问题
    WX小程序--开发中相关问题记录
    ECMAScript6 入门 Set 和Map结构
    ECMAScript6 入门 Class 的基本语法与继承
    ECMAScript6 入门 Generator
    ECMAScript6 入门 Promise
    ECMAScript6 入门 Symbol
  • 原文地址:https://www.cnblogs.com/Malphite/p/9840618.html
Copyright © 2011-2022 走看看