константный указатель как присвоение поля класса - PullRequest
2 голосов
/ 22 марта 2011

Я вернулся на C ++, и нужна небольшая помощь.Я знаю, что такое указатель const, но я могу выяснить, как правильно назначить его в конструкторе. Это расстраивает;)

, например:

public:
  TransferManager::TransferManager( Account * source, double amount )
  { 
    account = source; // that doesn't work ;)
  }

private:
  Account * const account;

1>proj1.cpp(63): error C2166: l-value specifies const object

Эта ошибка msg не ясна для меня.

Я провел некоторое исследование, но нашел только разницу между указателем const, указателем на const var и указателем const на const var ...

1 Ответ

10 голосов
/ 22 марта 2011

Используйте список инициализатора для инициализации членов const:

TransferManager::TransferManager( Account * source, double amount ) : account(source) {
}

В сообщении об ошибке говорится, что вы пытаетесь присвоить что-то, что является const - это не разрешено.Вы должны инициализировать такие переменные-члены, а не назначать их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...