m_Data(std::iostream & is) { is >> *this; }编译无法通过!求大佬解释下!
1.不是很明白整条语句的意思!2.这构造函数什么时候会被执行?
3.常常会看到std::iostream & is 被作为参数时的作用是什么?假如需要输入直接调用cin 不就可以了吗?为什么要这么麻烦呢?
程序代码:
class m_Data { public: m_Data(std::iostream & is) { is >> this->m_nMax; } std::istream& operator >> (m_Data& per) { this->m_nMax=per.m_nMax; } private: int m_nMax; }; int main() { m_Data s1(std::istream);// system("pause"); return 0; }
4.m_Data(std::iostream & is) 既然是从流中读取数据,那么 main中 创建对象时 无法输入数据 这又是为什么?
5.m_Data s1(std::istream); 这样写 编译是过去了!但是毫无意义啊!
求大佬帮忙回答下!谢谢!