基类的初始化

题目描述

补全类Derived,使程序符合下文规定的输入输出。

关于输入

一行,一个整数 n。

关于输出

第一行是 "3378 45818"

第二行是 "n n",n 为输入的整数

核心技巧

  • 基类没有不带参数的构造函数时,必须在派生类的初始化列表中恰当地提及。

参考答案

#include <iostream>

class Base {
public:
    int baseValue;
    Base(int value): baseValue{value} { }
};

class Derived : public Base {
    int derivedValue;

public:
    Derived(): derivedValue{45818}, Base{3378} {}
    Derived(int n): derivedValue{n}, Base{n} {}
//
    void print() {
        std::cout << baseValue << ' ' << derivedValue << std::endl;
    }
};

int main() {
    Derived a;
    a.print();

    int n;
    std::cin >> n;
    a = n;
    a.print();
}