我试图从一个类文件中运行一个函数,但它不工作,我收到以下错误消息: 错误 LNK1120:1 个 Unresolved external 问题
错误 LNK2019:未解析的外部符号“public:void __thiscall NS::Class1::test(void)”(?test@Class1@NS@@QAEXXZ) 在函数 _main 中引用
//Main.cpp
#include<iostream>
#include<string>
#include<Windows.h>
#include "Class1.h"
int main(){
NS::Class1 E;
E.test();
return 0;
};
//Class1.cpp
#include <Windows.h>
#include <string>
namespace NS{
class Class1{
Class1(){
OutputDebugString(L"Created.");
}
void test(){
OutputDebugString(L"Hello World");
}
};
}
//Class1.h
#ifndef _Class1_H_
#define _Class1_H_
namespace NS{
class Class1{
public:
void test();
};
}
#endif
最佳答案
在您的源文件中,您正在重新定义类,而不是定义其成员函数。这将产生未定义的行为,因为您只能定义一次类。源文件应该更像:
#include "Class1.h"
#include <Windows.h>
NS::Class1::Class1(){
OutputDebugString(L"Created.");
}
void NS::Class1::test(){
OutputDebugString(L"Hello World");
}
您还需要修改 header 中的类定义,因为它没有声明构造函数。
此外,请确保您的项目正在编译和链接这两个源文件。
关于c++ - 如何从 C++ 中的类文件运行函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19300504/