在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函数,这就是我遇到seg错误的地方。编程seg故障就像它进入while循环一样。如果我删除虚拟读取功能,它不会出错。 gdb只指向??
这是一个家庭作业问题,我需要为read()
(和其他)函数编写正文。
答案 0 :(得分:0)
问题现在解决了!暂时我在声明中没有“虚拟”的情况下使用这些功能。当我从MyClass派生子类时,我把'虚拟'放回去,一切正常!