回覆列表
  • 1 # 滴逃逃

    對,建構函式不屬於可呼叫函式,它只是用於所屬類的物件在建立時用於成員初始化,所以是隻為本類物件服務的。

    如果基類的建構函式是無參的(預設建構函式),派生類就不需要定義。但如果基類的建構函式是有參的,而且派生類也無法在定義時確定,也就是引數來自應用程式環境,那麼派生類需要編寫對應的有參建構函式,將引數傳遞給基類初始化;而如果基類建構函式中的引數由派生類能夠確定的,那麼在派生類的無參建構函式中定義常量,傳遞給基類初始化。

    比如:

    //基類

    class A

    {

    public:

    A(int a){x=a; }//基類有參建構函式

    private:

    int x;

    }

    //派生類B,接收外部引數

    class B

    :A

    {

    public:

    B(int a):A(a){}// 派生類有參建構函式接受外部引數傳遞給基類

    }

    //派生類C,內部傳遞給基類

    class C

    :A

    {

    public:

    C():A(10){}//派生類的無參建構函式將常量10傳遞給基類初始化

    }

  • 中秋節和大豐收的關聯?
  • 埃及人為什麼要囚禁以色列人?(還是巴比倫人來著,忘了)?