Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ ';“未声明的标识符”;在尝试用c++;_C++_Identifier - Fatal编程技术网

C++ ';“未声明的标识符”;在尝试用c++;

C++ ';“未声明的标识符”;在尝试用c++;,c++,identifier,C++,Identifier,这是我的代码: #include "stdafx.h" #include <iostream> int main() { Box *b = new Box(1,2,3); } class Box { private: int a; int b; int c; public: Box (int aa, int bb, int cc) { a=aa; b=bb; c=cc; } }; #包括“std

这是我的代码:

#include "stdafx.h"
#include <iostream>

int main()
{
    Box *b = new Box(1,2,3);
}


class Box
{
private:
    int a;
    int b;
    int c;
public:
    Box (int aa, int bb, int cc)
    {
    a=aa;
    b=bb;
    c=cc;
    }

};
#包括“stdafx.h”
#包括
int main()
{
框*b=新框(1,2,3);
}
类框
{
私人:
INTA;
int b;
INTC;
公众:
盒子(内部aa、内部bb、内部cc)
{
a=aa;
b=bb;
c=cc;
}
};
它不能编译

(我没有将其拆分为h文件和cpp文件)


提前感谢

您需要在使用它的代码上方声明您的类。

您需要在使用它的代码上方声明您的类。

main
放在
类之后

class Box
{
private:
    int a;
    int b;
    int c;
public:
    Box (int aa, int bb, int cc)
    {
    a=aa;
    b=bb;
    c=cc;
    }

};

int main()
{
    Box *b = new Box(1,2,3);
}

转发声明
类框将不起作用,但是如果您只使用
Box*b,它将起作用

main
放在您的
类之后

class Box
{
private:
    int a;
    int b;
    int c;
public:
    Box (int aa, int bb, int cc)
    {
    a=aa;
    b=bb;
    c=cc;
    }

};

int main()
{
    Box *b = new Box(1,2,3);
}

转发声明
类框将不起作用,但是如果您只使用
Box*b,它将起作用

添加完整的编译器错误。也就是说,我猜这是因为您试图在定义类
框之前使用它。将
main()
放在末尾,或添加
class框开头。作为对millimoose的注释:类框;before main()不起作用,因为您在main()中显式调用了Box的构造函数。转发声明类框;仅当您仅使用指针框*@millimoose时有效对不起,您赶时间吗?我能请你考虑一下多点时间吗?“你能提供完整的编译器错误吗?”或者“你应该包括编译器错误”都很好,这有助于营造一个更好的氛围。对于本网站上的提问者和回答者。@millimoose“我们需要你实际的编译器错误”。“显然”。你什么都没教。事实上,我也不是。OP需要理解为什么我们不能回答它。添加完整的编译器错误。也就是说,我猜这是因为您试图在定义类
框之前使用它。将
main()
放在末尾,或添加
class框开头。作为对millimoose的注释:类框;before main()不起作用,因为您在main()中显式调用了Box的构造函数。转发声明类框;仅当您仅使用指针框*@millimoose时有效对不起,您赶时间吗?我能请你考虑一下多点时间吗?“你能提供完整的编译器错误吗?”或者“你应该包括编译器错误”都很好,这有助于营造一个更好的氛围。对于本网站上的提问者和回答者。@millimoose“我们需要你实际的编译器错误”。“显然”。你什么都没教。事实上,我也不是。OP需要理解为什么我们不能回答。需要定义他的等级。为什么我被否决了?您需要在使用类之前声明它,并且需要在最终可以链接到的二进制文件中的某个地方定义它。这就是为什么头声明类型,但可以稍后链接的对象文件定义它们。编辑:错误消息显示“未声明的标识符”而不是“未定义”也是有原因的;这是一个链接时间问题!需要定义他的阶级。为什么我被否决了?您需要在使用类之前声明它,并且需要在最终可以链接到的二进制文件中的某个地方定义它。这就是为什么头声明类型,但可以稍后链接的对象文件定义它们。编辑:错误消息显示“未声明的标识符”而不是“未定义”也是有原因的;这是一个链接时间问题!