LINUX.ORG.RU

История изменений

Исправление eao197, (текущая версия) :

ЕМНИП, бывает еще и такое:

struct B {};
struct C {
  C(const B & arg) {...};
};
...
C c(B());
Типа того, что мы создаем экземпляр типа C и в конструктор передаем ему временный экземпляр B с дефолтным значением. А на самом-то деле :)

Вот, можете сами попробовать:

#include <typeinfo>
#include <iostream>

struct B {};
struct C {
	B b_;
	C(const B & b) : b_(b) {}
};

int main() {
	C c(B());
	std::cout << typeid(c).name() << std::endl;
}

Исходная версия eao197, :

ЕМНИП, бывает еще и такое:

struct B {};
struct C {
  C(const B & arg) {...};
};
...
C c(B());
Типа того, что мы создаем экземпляр типа C и в конструктор передаем ему временный экземпляр B с дефолтным параметром. А на самом-то деле :)

Вот, можете сами попробовать:

#include <typeinfo>
#include <iostream>

struct B {};
struct C {
	B b_;
	C(const B & b) : b_(b) {}
};

int main() {
	C c(B());
	std::cout << typeid(c).name() << std::endl;
}