#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基础课程》。