我遇到了这 2 个错误:
-错误:在数字常量之前需要标识符
-错误:在数字常量之前需要','或'...'
我尝试从第二个类到一个带有参数的第一个类的对象,它给了我这两个错误。没有参数工作正常。 这是主要的:
#include<iostream>
#include "c1.h"
#include "c1.cpp"
#include "c2.h"
#include "c2.cpp"
using namespace std;
int main()
{
c2 obj2();
return 0;
}
这是一流的标题:
#ifndef C1_H
#define C1_H
class c1
{
public:
c1(int,int);
};
#endif // C1_H
及其cpp文件:
#include "c1.h"
c1::c1(int x,int y)
{
std::cout << "\nCtor c1\n" << x << "\n" << y << "\n";
}
第二个文件头:
#include "c1.h"
#ifndef C2_H
#define C2_H
class c2
{
public:
c2();
c1 obj1(10,2);
};
#endif // C2_H
及其cpp:
#include "c2.h"
c2::c2()
{
std::cout << "\nCtor c2\n";
}
谢谢。
最佳答案
不要在包含中使用 CPP 文件。
要解决此问题,您可以将对象更改为指针并使用类似 c1* obj1=new c1(10,2)
的方法,它应该可以工作。
一个更好的方法是,添加一个类成员 c1* obj1;
并使用 c2 的构造函数来真正创建 c1 对象 obj1=new c1();
关于Header/objects 初始化中的 C++ Header,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33744219/