本文介绍了C ++访问冲突,而从文件读取的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

刚开始的C ++。

我收到访问冲突的错误,同时从二进制文件中读取。这里所涉及的类:

 一流的工作人员{//基类
上市:
    工作人员(){}
    虚拟〜人员{}
}

一个派生类:

 类计划:大众员工{
上市:
    调度程序(){}
    //没有析构函数定义
}

然后在code,使用这些类:

  ifstream的中(Scheduler.dat的ios ::在| IOS ::二进制);
调度S;
in.read(reinter pret_cast<字符*>(安培; S)的sizeof(调度));

我打的读声明的那一刻,访问冲突异常触发和VS2013指向一流的工作人员的虚析构函数。

是不是因为我没有明确创建类调度析构函数?或者它被别的什么原因引起的?


解决方案

计划是不是一个平凡的可复制类,你无法读取或写入按字节像一个文件这一点。

You'll either have to remove the virtual destructor (which brings its own set of issues if you want to use Staff polymorphically), read and write to the file using a serialization library, or write your own serialization function, the canonical way would be something like std::ostream& operator<<(std::ostream&, Staff const&);

这篇关于C ++访问冲突,而从文件读取的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-05 00:28