ошибка при использовании `this` в списке

0

Я получаю сообщение об ошибке "ожидаемый идентификатор" для следующего кода. Как правильно использовать списки инициализации в конструкторах?

tanVec::tanVec(const int x, const int y, const int z): this->x(x), this->y(y), this->z(z)
{

}
  • 4
    Просто удалите это - this-> вам это не нужно (сделайте имена параметров отличными от ваших переменных-членов, например, добавив _). Живой пример
  • 2
    Я не думаю, что вам даже нужно делать разные имена с помощью списка инициализации.
Показать ещё 5 комментариев
Теги:

1 ответ

3

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

// Compiler will not confuse members x, y, and z with constructor arguments x, y, and z
tanVec::tanVec(const int x, const int y, const int z): x(x), y(y), z(z) {}

Маленькая демонстрация на идеоне.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню