Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.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++ 如何在Visual Studio C+中加载文件+;建成时_C++_Visual Studio 2012 - Fatal编程技术网

C++ 如何在Visual Studio C+中加载文件+;建成时

C++ 如何在Visual Studio C+中加载文件+;建成时,c++,visual-studio-2012,C++,Visual Studio 2012,我有三份档案 Wood.cpp Brick.cpp Wall.cpp 我的main()函数位于Brick.cpp中: 现在,当我运行这个项目时,它抛出了一个错误,即类名(位于Wall.cpp中)未定义。我该怎么办 我认为main()函数是在删除Wall.cpp文件之前运行的 我认为main()函数是在对Wall.cpp文件进行delaration之前运行的。编译时没有在之前运行。此外,编译顺序由编译器定义 您需要将定义了className的头文件(ussualy*.h、*.hpp、*.hh)包

我有三份档案

Wood.cpp
Brick.cpp
Wall.cpp
我的
main()
函数位于Brick.cpp中:

现在,当我运行这个项目时,它抛出了一个错误,即
类名
(位于Wall.cpp中)未定义。我该怎么办

我认为
main()
函数是在删除Wall.cpp文件之前运行的

我认为main()函数是在对Wall.cpp文件进行delaration之前运行的。
编译时没有之前运行。此外,编译顺序由编译器定义

您需要将定义了
className
的头文件(ussualy*.h、*.hpp、*.hh)包含到使用该类的源文件中(如果您有头文件,则必须创建头文件)


对于编译器来说,知道类的声明(在标题中)就足够编译源代码了。声明是链接器所必需的。

< p>您需要一种方式来告诉C++编译器什么样的函数将可用和实现,在C++中,使用标题文件的方式是:

例如:

文件a.hpp

class A {
  // variable members
  // function signatures or inline functions
};
文件a.cpp

// Implementation of functions in class A and initialization of static variables in A
文件b.hpp

#include "a.hpp"

// Could use class A
class B {

   A m_a_member_variable;
}
文件b.cpp

// Implementation of functions in class B and initialization of static variables in B that could use classes and declarations in a.hpp (ex: class A)

您的项目中有.hpp吗?请张贴至少与问题的代码和确切的错误消息否,我没有任何头文件。我的类在.cpp文件中声明。然后您必须创建一个。谷歌第一个链接上,或更好。