标题/对象初始化中的C ++标题

时间:2015-11-16 20:41:59

标签: c++ parameters header include

我收到了这两个错误:

-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";
}

感谢的。

1 个答案:

答案 0 :(得分:1)

不要在包含中使用CPP文件。

要解决此问题,您可以将对象更改为指针并使用类似c1* obj1=new c1(10,2)的内容,它应该可以正常工作。

更好的方法是,添加一个类成员c1* obj1;并使用c2的构造函数来真正创建c1对象obj1=new c1();