クマのプーさん
Мудрец
(15499)
4 года назад
ѣѣ потому что в сраных плюсах разрешили делать декларацию функции где попало
таким образом
b bb();
просто декларация фукнции bb, возвращающей тип b
и ффсё. никакого кода не генерится для этой строчки
Голова РоботаПросветленный (36328)
4 года назад
Даже если бы не разрешили декларировать функции где попало, была бы та же неразбериха с глобальными переменными.
Дополнение к ответу.
Тип можно проверить написав:
cout << "type: " << typeid(bb).name();
Для этого надо подключить
#include <typeinfo>
Формат вывода имени типа зависит от компилятора.
Ещё IDE должна подсказывать типы переменных.
{
public:
a()
{
cout << "class a" << endl;
}
};
class b : public a
{
public:
b()
{
cout << "class b" << endl;
}
b(int b)
{
cout << "class b 5" << endl;
}
};
int main()
{
b bb();
}
почему строчка b bb(); не выводит в консоль ничего? (вызывается же конструктор по умолчанию)
а строчка b bb; нормально отрабатывает