iostream
и другие потоковые классы не на самом деле класс, но typedef
s, верно?
Вот проблема, я попытался инициализировать istream
объект всписок инициализации, но, к сожалению, я получил ошибку, код выглядит следующим образом:
class A
{
public:
A(istream &is=cin): ais(is)
{}
private:
istream ais;
};
Невозможно скомпилировать с g ++, ошибка:
synthesized method ‘std::basic_istream<char, std::char_traits<char> >::basic_istream(const std::basic_istream<char, std::char_traits<char> >&)’ first required here
Я искал SO, обнаружил, что iostream cannot be assigned or copy
.Но почему я не могу инициализировать его в списке инициализации ?
Потому что я думаю, что список инициализации вызовет конструктор / copy-конструктор объекта, верно?