Ошибки с указателем this - PullRequest
       17

Ошибки с указателем this

1 голос
/ 28 сентября 2010

У меня проблема с указателем this внутри пользовательского класса.Мой код выглядит следующим образом.

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

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

Как я уже говорил выше, я считаю, что ошибка, которую я получаю (LNK2019), исходит из этого.Я думаю, что он ищет функцию в другом файле, который он не находит.Есть ли какой-нибудь способ, которым я могу заставить этот код работать, или я должен использовать какой-то обходной путь?Если так, что я должен сделать, чтобы обойти эту проблему.Спасибо.

Ответы [ 2 ]

6 голосов
/ 28 сентября 2010
class Foo(){

Измените это на

class Foo{

Кроме того, это не должно компилироваться.Как вам удалось получить ошибку ссылки?

После внесения этого изменения компоновщик говорит undefined reference to 'main', что означает, что у вас нет функции main.

0 голосов
/ 28 сентября 2010

Хотя это не ошибка, строка

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

не нуждается в части (*this).Его можно записать просто как

bool is_baz = baz();

Но какой смысл вычислять is_baz, если он не используется и не возвращается?

...