我是编码的新手,我只是在玩C ++尝试学习类而不是其他。这是下面的代码,我不知道为什么它不起作用。
我已经Google搜索了一段时间,找不到任何东西。
#include "Vehicle.cpp"
#include <iostream>
using namespace std;
int main() {
Vehicle myVehicle();
cout << myVehicle.testCout();
}
#include <iostream>
#include <string>
#include "Engine.cpp"
#include "Body.cpp"
#include "Rims.cpp"
using namespace std;
class Vehicle {
Vehicle() {
Engine engine(4, 1.6, "i4");
Body body("black", 4);
Rims rims(16);
}
void testCout() {
cout << engine.getCylinders();
}
};
main.cpp: E0153表达式必须具有类类型ObjectStuff
Vehicle.cpp: E0020标识符“ engine”未定义
答案 0 :(得分:3)
class Vehicle {
Vehicle() {
Engine engine(4, 1.6, "i4");
Body body("black", 4);
Rims rims(16);
}
void testCout() {
cout << engine.getCylinders();
}
};
问题是您的实例变量不存在。您的构造函数创建了一些变量,但在ctor结束后将其删除。您需要将它们保存在班级中。
class Vehicle {
Engine engine;
Body body;
Rims rims;
public: // And you need to declare the stuff public that you want public
Vehicle() {
engine = Engine(4, 1.6, "i4");
body = Body("black", 4);
rims = Rims(16);
}
void testCout() {
cout << engine.getCylinders();
}
};
答案 1 :(得分:0)
我不知道您是否发布了实际代码的混搭,但我看不到如何在课堂外调用私人成员。
为什么要包含.cpp文件?
Vehicle.cpp: E0020 identifier "engine" is undefined
上述错误是因为编译器找不到Engine类的声明。同样,对于您要创建的其他对象。