我有三个文件:Main.cpp、Security.h 和 Security.cpp。
我已经在我的头文件中声明了我的类 Security(包括一个函数)。
我已经在 Security.cpp 中定义了函数。
我的头文件已包含在 Main.cpp 和 Security.cpp 中。
在 Main.cpp 中,我正在创建一个对象,并尝试运行成员函数并不断出现编译错误。
main.cpp
#include<iostream>
#include "Security.h"
using namespace std;
int main()
{
Security S1;
S1.Driver();
}
安全.h
class Security
{private:
public:
void Driver();
};
安全.cpp
#include<iostream>
#include<fstream>
#include "Security.h"
using namespace std;
void Securtiy::Driver()
{
cout << "Enter a number: ";
int answer;
cin >> answer;
cout << answer;
}
最佳答案
你应该编译这两个文件,因为 Security::Driver 的定义在 Security.cpp 中。
最简单的方法是调用单个命令:
g++ Main.cpp Security.cpp
但是,如果您想单独编译文件,则必须使用 -c
标志将它们编译成中间(“对象”)格式:
g++ -c Main.cpp
g++ -c Security.cpp
这将为您提供两个目标文件。现在链接它们:
g++ Main.o Security.o
关于c++ - 尝试编译时对 class::function 的 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18937877/