Compiler/linker 抱怨在 C++ 中找不到函数定义
Compiler/linker complaining about function definition not found in C++
我已经做过很多次了,但我不明白 Visual Studio 抱怨这个的原因。
Manipulator.cpp:
#include "Manipulator.h"
Manipulator::Manipulator() {}
Manipulator::~Manipulator() {}
void proc(std::string p, int f, std::string c)
{
// switch-case p to c based on f:
return;
}
Manipulator.h:(void -proc- 有一个弯曲的下划线,这就是让我感到困惑的原因。)
#ifndef MANIPULATOR_H
#define MANIPULATOR_H
#include <string>
class Manipulator
{
private:
protected:
public:
Manipulator() ;
~Manipulator() ;
void proc(std::string, int, std::string);
// function definition for 'proc' not found.
};
#endif MANIPULATOR_H
main.cpp
#include "Manipulator.h"
...
int main()
{
...
Manipulator m;
...
m.proc(opdBMP, fxn, newBMP);
return 0;
}
VS 想要什么让我继续前进?它告诉我有两个链接器错误:LNK2019 和 LNK1120(未解析的外部)。 (我过去常常跟踪这些类型的错误,但丢失了文件作为日志。)
编译器的抱怨是正确的,因为定义应该是
void Manipulator::proc(std::string p, int f, std::string c) {
...
}
您刚刚定义了一个自由函数而不是 Manipulator
的成员。
我已经做过很多次了,但我不明白 Visual Studio 抱怨这个的原因。
Manipulator.cpp:
#include "Manipulator.h"
Manipulator::Manipulator() {}
Manipulator::~Manipulator() {}
void proc(std::string p, int f, std::string c)
{
// switch-case p to c based on f:
return;
}
Manipulator.h:(void -proc- 有一个弯曲的下划线,这就是让我感到困惑的原因。)
#ifndef MANIPULATOR_H
#define MANIPULATOR_H
#include <string>
class Manipulator
{
private:
protected:
public:
Manipulator() ;
~Manipulator() ;
void proc(std::string, int, std::string);
// function definition for 'proc' not found.
};
#endif MANIPULATOR_H
main.cpp
#include "Manipulator.h"
...
int main()
{
...
Manipulator m;
...
m.proc(opdBMP, fxn, newBMP);
return 0;
}
VS 想要什么让我继续前进?它告诉我有两个链接器错误:LNK2019 和 LNK1120(未解析的外部)。 (我过去常常跟踪这些类型的错误,但丢失了文件作为日志。)
编译器的抱怨是正确的,因为定义应该是
void Manipulator::proc(std::string p, int f, std::string c) {
...
}
您刚刚定义了一个自由函数而不是 Manipulator
的成员。