Qubc
@Qubc
Ненавижу полисемию.

Почему создание временного объекта c помощью конструктора копирования оценивается как redeclaration?

class Object
{
  public:
  int data;
  Object (void) { data = 0;}
  Object ( Object const & r) { data = r.data; }
  ~Object (void) { }
};

int main (void)
{
  Object o1;
  // Object (); // ok
  //! Object (o1); // error: redeclaration of 'Object o1'
  return 0;
}
  • Вопрос задан
  • 56 просмотров
Решения вопроса 1
Nipheris
@Nipheris Куратор тега C++
А с чего вы решили, что парсер это разобрал как конструкцию вызова конструктора копирвания? Я думаю он считает это декларацией. Вот если Object { o1 }; напишите, то другое дело.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы