Header/objects 初始化中的 C++ Header

标签 c++ parameters header include

我遇到了这 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/

相关文章:

joomla - 获取未分配给当前页面的模块的 Joomla 2.5 模块参数

java - 泽西客户端 : too many Conent-Type header values

c++ - 自定义 opengl 压缩纹理

c++ - 多个值可以隐式转换为一个对象吗?

c++ - C++ 中的私有(private)函数与静态函数

php - 将变量参数列表传递给 sprintf()

mysql - 参数化 IReports,带有 LIKE 子句的 SQL 语句

c++ - 实现 mouseDoubleClickEvent 时不会发出 itemDoubleClicked 信号

html - 在没有 jquery 的情况下在滚动条上切换标题内容

html - 响应式网页设计 - 消失的风格?