从其他 C++ 文件访问方法
access methods from other c++ files
我已经为主要功能和菜单功能实现了客户、DVD、收据、类和 2 个文件,我包含了所有的 .h 文件,但是当我使用一个函数时,例如来自菜单函数,它不起作用,并说函数未定义。我想在一个单独的.cpp文件中编写它,该文件称为 main,它是我的应用程序的驱动程序。
这是我的代码:
#ifndef CUSTOMER_H
#include "Customer.h"
#endif
#ifndef DVD_H
#include "DVD.h"
#endif
#ifndef MAIN_FUNC_H
#include "MainFunctions.h"
#endif
#ifndef MENU_FUNC_H
#include "MenuFunctions.h"
#endif
#ifndef RECEIPT_H
#include "Receipt.h"
#endif
using namespace std;
int main () {
intro();
return 0;
}
错误是:
错误1 错误 C2129:静态函数"void intro(void)"声明,但 未定义 C:\Program Files (x86)\Microsoft Visual Studio 10.0\vc\include\xMemory 186 1 DVD_App
即使函数intro()
是在MenuFunctions.h
文件中定义的,并在MenuFunctions.cpp
中实现
注意:2 个文件,MenuFunctions 和 MainFunctions 中没有类,只有静态函数我也在没有包含警卫的情况下尝试过,再次不起作用
如果你用static
标记函数(注意 - 函数,而不是方法),它意味着编译单元(.cpp文件)的"本地"。因此,需要在此处声明和定义它,并且从其他 cpp 文件中不可见。因此,删除静态意味着可以跨编译单元访问该函数。
> 你不是在编译 MenuFunctions.cpp,为了让编译器知道 intro() 的定义,它需要实现代码。检查你的生成文件是否有,如果没有,请在 main() 之前包含 MenuFunctions.cpp或者指定 MenuFunctions.cpp以及编译器。
确保 MenuFunctions.cpp 文件有
#include "MenuFunctions.h"
在它的开始。错误显示它已声明,但未定义。保护#include "MenuFunctions.h"
,防止双重包含。
- 通过方法访问结构
- 为了访问方法,从基类动态转换为派生类
- 访问方法的返回类型
- 是否有对 Clang 递归 ASTVisitor 的最终访问方法
- 具有各种访问方法的自定义数据结构
- 另一个子模块错误的 omnet 访问方法 - 调用 'check_and_cast(cModule*&)' 没有匹配函数
- 使用矢量迭代器访问方法
- 从其他 C++ 文件访问方法
- C++箭头运算符重载.如何获取被访问方法的名称
- 访问方法C++时出现问题
- 易失性成员的访问方法
- 在实例化之前访问方法
- 是否不希望将指针存储在具有不同访问方法的多个容器中?
- 在c++中查看类中基于参数的私有变量的访问方法
- 在继承错误之后访问方法
- 最好的方法访问方法的派生类c++
- 是否存在具有多访问方法的可变模板变体
- 为指向类的指针数组制定访问方法时遇到问题
- 转发类,无法访问方法
- 我可以在 Python 中创建我的 C++ 对象,但无法访问方法