McG*_*gle 1 c++ visual-studio-2012
我正在尝试做一些我认为应该很容易的事情(作为C++ noob):从另一个类引用一个类.出于某种原因,我收到一个错误:
错误6错误LNK2019:未解析的外部符号"public:float*__thiscall Foo :: Test(void)"(?Test @ Foo @@ QAEPAMXZ)在函数"void __cdecl Test(void)"中引用(?Test @@ YAXXZ)Bar .OBJ
foo.h中
class Foo
{
public:
Foo(void);
~Foo(void);
float* Test();
};
Run Code Online (Sandbox Code Playgroud)
Foo.cpp中
#include "Foo.h"
float* Test()
{
return new float[0];
}
Run Code Online (Sandbox Code Playgroud)
Bar.h
class Bar
{
public:
Bar(void);
~Bar(void);
void Test();
};
Run Code Online (Sandbox Code Playgroud)
Bar.cpp
#include "Bar.h"
#include "Foo.h"
void Test()
{
Foo* foo = new Foo();
foo->Test();
}
Run Code Online (Sandbox Code Playgroud)
为什么编译器不允许我从Bar引用类Foo?我不知道这个错误意味着什么,也不知道如何调试它.
#include "Foo.h"
float* Test()
{
return new float[0];
}
Run Code Online (Sandbox Code Playgroud)
应该:
#include "Foo.h"
float* Foo::Test()
{
return new float[0];
}
Run Code Online (Sandbox Code Playgroud)
您的版本只是定义了一个自由函数Test,与成员函数不同Foo::Test.
一个Unresolved external symbol错误意味着编译器告诉你嘿,你告诉我,我会找到这个东西的定义,但我看起来,无法在任何地方找到它.从本质上讲,你已经骗了它,它叫你出去.
另一个垃圾是调用约定(__cdecl,__thiscall)和错位(实际)函数名称(?Test@@YAXXZ).
| 归档时间: |
|
| 查看次数: |
1057 次 |
| 最近记录: |