c++ - 对类函数的未定义引用
问题描述
我正在处理 oop 并且无法理解出了什么问题。当我尝试编译代码时,我收到下一条消息:未定义对“N::my_class::do_something()”的引用。代码来自微软:https:
//docs.microsoft.com/en-us/cpp/cpp/header-files-cpp?view= msvc-160 my_class.h 文件:
namespace N
{
class my_class
{
public:
void do_something();
};
}
my_class.cpp 文件:
#include "my_class.h" // header in local directory
#include <iostream> // header in standard library
using namespace N;
using namespace std;
void my_class::do_something()
{
cout << "Doing something!" << endl;
}
my_program.cpp 文件:
#include "my_class.h"
using namespace N;
int main()
{
my_class mc;
mc.do_something();
return 0;
}
解决方案
您的代码在 g++ 8.4.0 上适用于我。
using namespace N;
可能不足以为您的编译器在 N 中声明成员函数。尝试在您的 cpp 文件中内联或使用命名空间范围指定命名空间。
编辑:最有可能的问题。my_class.cpp 未编译或链接。检查你的编译参数。
推荐阅读
- c# - 防止 API 中断更改
- jquery - 在移动设备中的前一个 div 引导轮播旁边显示一个 div
- react-native - 使用带有自定义域的 react-native-google-signin
- sql - Sql 错误聚合函数或 GROUP BY 子句
- angular - Angular 如何评估插值中的表达式?
- swift - App Store 审核流程是否拒绝 Swift 私有功能(如函数构建器)?
- node.js - 必须在 graphql 中提供查询字符串
- python - 在本地机器上训练 GPT-2,加载数据集
- java - 开发 Eclipse 插件的正确方法?
- azure - 401 Unauthorized to sign image for Azure Container Registry