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
. 但是为什么我不能在初始化列表中对其进行初始化呢?
因为我认为,初始化列表将调用对象的构造函数/复制构造函数,对吗?