Задать вопрос
Daniro_San
@Daniro_San
Программист

В чем разница между int a() и int a=int()?

Понимаю, звучит глупо, и я бы не спрашивал, если бы не поэкспериментировал в консоли
int first (); //  first == 1
int two = int (); // two == 0

Но почему так?
Для не примитивных типов что AnyType anyObject () , что AnyType anyObject = AnyType () - вызов конструктора, а с примитивами?
  • Вопрос задан
  • 1271 просмотр
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@MiiNiPaa
А теперь выведите typeid(first).name() на экран и удивитесь.

Первая строчка это объявление функции first без параметров и возвращающая int. Имя функции превращается в указатель, указатель конвертируется в bool (true), который конвертируется в int (1).
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Foolleren
@Foolleren
Компас есть, копать не люблю...
неявное приведение типов или как отстрелить себе ногу в С и С++
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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