我收到了这两个错误:
-error:数字常量之前的预期标识符
-error:在数字常量之前预期','或'...'
我尝试从第二个类到一个带有参数的第一个类的对象,它给了我那两个错误。没有参数工作正常。 这是主要的:
#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";
}
感谢的。
答案 0 :(得分:1)
不要在包含中使用CPP文件。
要解决此问题,您可以将对象更改为指针并使用类似c1* obj1=new c1(10,2)
的内容,它应该可以正常工作。
更好的方法是,添加一个类成员c1* obj1;
并使用c2的构造函数来真正创建c1对象obj1=new c1();