在main()
我有标题:iostream、fstream、iomanip、MyClass.h
char temp;
MyClass *class1;
ifstream inf("file")
while(inf >> temp)
{
if(temp == 'A') class1 = new Myclass();
inf >> *class1;
}
在 Myclass.h 中:
class MyClass{
int num;
protected:
virtual istream& read(istream &is)
{ /* char temp; is >> temp >> num; */
return is; //seg faults on this line I believe
}
public:
friend istream& operator >> (istream &is, MyClass &class1) {return class1.read(is);}
};
程序应该读取一个文件,查看它是否以 开头'a'
,然后创建一个类,并将信息解析到其中。然后MyClass
将 istream 传递给 read 函数,这就是我遇到段错误的地方。程序段错误就像它进入 while 循环一样。如果我删除虚拟读取功能,它不会出现段错误。gdb 只是指向 0x000000001 ??
这是一个家庭作业问题,我需要为read()
(和其他)函数编写正文。