📜  C ++ |继承|问题11

📅  最后修改于: 2021-06-29 02:36:55             🧑  作者: Mango

#include
using namespace std;
  
class Base
{
public :
    int x, y;
public:
    Base(int i, int j){ x = i; y = j; }
};
  
class Derived : public Base
{
public:
    Derived(int i, int j):x(i), y(j) {}
    void print() {cout << x <<" "<< y; }
};
  
int main(void)
{
    Derived q(10, 10);
    q.print();
    return 0;
}

(A) 10 10
(B)编译器错误
(C) 0 0答案: (B)
说明:无法使用初始化程序列表直接分配基类成员。我们应该调用基类构造函数以初始化基类成员。

以下是无错误程序,并显示“ 10 10”

#include
using namespace std;
  
class Base
{
public :
    int x, y;
public:
    Base(int i, int j){ x = i; y = j; }
};
  
class Derived : public Base
{
public:
    Derived(int i, int j): Base(i, j) {}
    void print() {cout << x <<" "<< y; }
};
  
int main(void)
{
    Derived q(10, 10);
    q.print();
    return 0;
}

这个问题的测验

想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。