Задать вопрос
TiersWar
@TiersWar
Ничего не знаю, ковыряюсь мало-помалу.

Конструктор по умолчанию?

class Test{
  public:
  Test()  {cout << "ctor\n";}
};

int main(int argc, char** argv){
   Test t1;     // объект№ 1
   Test t2();  // объект№ 2
}

В чём разница между вызовами объектов?
Разве при инициализации этих объектов не должен использоваться один и тот же конструктор?
  • Вопрос задан
  • 183 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 2
@MiiNiPaa
Разница в том, что t1 — объект класса Test, а t2 — нет.

Это функция ничего не принимающая и возвращающая экземпляр Test

https://en.wikipedia.org/wiki/Most_vexing_parse
Ответ написан
@sitev_ru
sitev.ru - мой блог ...
t1 - это объект класса, а t2 - это прототип функции https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D...

#include <iostream>
using namespace std;

class Test{
public:
	Test()  { cout << "ctor\n"; }
};

int main(int argc, char** argv){
	Test t1;     // объект№ 1
	Test t2();  // прототип функции
	t2(); // вызов функции
}

// сама фунция
Test t2() {
	Test t;
	return t;
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы