#include <iostream> using namespace std; class BaceClass { public: BaceClass(); }; BaceClass::BaceClass() { cout << "构造基类对象" << endl; }; class DerivedClass : public BaseClass { public: DerivedClass(); }; DerivedClass::DerivedClass() { cout << "构造派生类对象" << endl; } int main(int argc, char** argv) { DerivedClass d; return 0; }哪里错了
时间: 2024-03-23 18:41:17 浏览: 14
代码中有一个类名拼写错误,将 `BaceClass` 改为 `BaseClass` 即可,另外需要将基类的构造函数改为 `virtual`,否则派生类的构造函数不会调用基类的构造函数。
正确的代码如下:
```
#include <iostream>
using namespace std;
class BaseClass {
public:
virtual BaseClass();
};
BaseClass::BaseClass() {
cout << "构造基类对象" << endl;
};
class DerivedClass : public BaseClass {
public:
DerivedClass();
};
DerivedClass::DerivedClass() {
cout << "构造派生类对象" << endl;
}
int main(int argc, char** argv) {
DerivedClass d;
return 0;
}
```
相关问题
补全程序,并写出程序运行结果。 #include <iostream> using namespace std; class Class { public : Class ( int...
补全程序如下:
```
#include <iostream>
using namespace std;
class Class {
public:
Class(int num) {
cout << "Constructor with one argument called." << endl;
}
Class(int num1, int num2) {
cout << "Constructor with two arguments called." << endl;
}
};
int main() {
Class obj1(10);
Class obj2(20, 30);
return 0;
}
```
程序运行结果为:
```
Constructor with one argument called.
Constructor with two arguments called.
```
解释:
这是一个带有两个构造函数的类`Class`。第一个构造函数接受一个整数参数,第二个构造函数接受两个整数参数。在`main`函数中,我们创建了两个对象`obj1`和`obj2`,分别调用了两个不同的构造函数。所以,程序输出了两个不同的消息。
#include <iostream> using namespace std; class Car { //在此处声明Car类 private: bool door; … c.State(); }
这段代码存在语法错误,需要补充完整才能运行。其中,需要在类中添加成员函数State的定义,如下所示:
```c++
#include <iostream>
using namespace std;
class Car {
private:
bool door;
// 其他成员变量
public:
void State() {
cout << "The door is " << (door ? "open" : "closed") << endl;
// 输出其他成员变量的状态
}
};
int main() {
Car c;
c.State();
return 0;
}
```
在State函数中,我们可以输出Car类中的成员变量状态,例如door变量的状态。在主函数中,我们创建了一个Car对象c,并调用了它的State函数。运行程序后,应该可以看到输出结果。