2010-09-28 64 views
1

我遇到了这个指针在自定义类中的问题。我的代码如下所示。'this'指针的错误

class Foo{ 
    public: void bar(); bool baz(); 
}; 

bool Foo::baz(){ 
    return true; 
} 
void Foo::bar(){ 
    bool is_baz = (*this).baz(); 
} 

正如我上面所说,我相信我得到的错误(LNK2019)是来自这个。我认为它是在一个不同的文件中寻找一个函数,它找不到。有什么方法可以让代码工作,还是我必须使用某种解决方法?如果是这样,我该如何解决这个问题。谢谢。

+1

你为什么不直接叫'baz()'?链接器发出的确切错误是什么? – 2010-09-28 16:19:38

+0

并非所有的C++编译器都使用相同的错误编号。为编译器命名或给出错误消息的文本。我猜在这:http://msdn.microsoft.com/en-us/library/799kze2z(v=vs.80).aspx但它只是一个猜测。 – 2010-09-28 16:20:45

+0

你想告诉我们LNK2019是什么?它指的是什么?提到什么符号?或者你想让我们用ESP进行调试? – abelenky 2010-09-28 16:25:06

回答

6
class Foo(){ 

更改为

class Foo{ 

而且,这不应该编译。你是如何设法得到链接错误的?

进行此更改后,链接器说undefined reference to 'main',这意味着您没有main函数。

+6

是的,这强烈暗示代码片段不是实际的代码,而是一个乱码的重写版本,这会使其很难提供帮助。 – 2010-09-28 16:23:59

0

虽然这不是一个错误,该行

bool is_baz = (*this).baz(); 

不需要(*this)部分。它可以简单地写为

bool is_baz = baz(); 

但是,什么是计算is_baz如果没有使用它,也不返回点?