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 的成员。