fatal error C1001: INTERNAL COMPILER ERROR

fatal error C1001: INTERNAL COMPILER ERROR

运算符重载时遇到以上错误代码

解决方法:

1.将#include<iostream> 改成 #include<iostream.h>

然后去掉 using namespace std;

编译即可通过!

2.前向声明类,然后声明友元函数(注意不要加friend),也可以顺利通过编译!

3.打上vc6.0的sp6补丁就可以了!

4.在 VC6 中可以用如下方法解决:在出错信息中找到出错时正在编译的那个 cpp文件的名字,把它记下来;在 FileView 窗口中的 source files 下新建一个子文件夹,把刚才记住的 cpp 文件移动到这个文件夹中;然后再次编译。(这其实是改变了工程中 cpp 文件的编译顺序,专门针对于 VC6 ) 

(二)从功能性的角度来讲,
<iostream>包含了一系列模板化的I/O类,相反地<iostream.h>只仅仅是支持字符流。另外,输入输出流的C++标准规范接口在一些微妙的细节上都已改进,因此,<iostream>和<iostream.h>在接口和执行上都是不同的。最后,<iostream>的各组成都是以STL的形式声明的,然而<iostream.h>的各组成都是声明成全局型的。

因为这些实质上的不同,你不能在一个程序中混淆使用这两个库。做为一种习惯,在新的代码中一般使用<iostream>,但如果你处理的是过去编写的代码,为了继承可以用继续用<iostream.h>旧保持代码的一致性。

(三)<iostream>表示你使用的是标注命名空间,也就是在程序开始应该有这么一句话 using namespace std ;这是遵循c++标准的

<iostream.h> 则没有遵循c++标准。

<string.h>是旧的C头文件,对应的是基于char*的字符串处理函数;

<string>是包装了std的C++头文件,对应的是新的string类;

<cstring>是对应旧的C头文件的std版本。

永不止步步 发表于02-15 09:37 浏览65196次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

永不止步步
金币:67410个|学分:302217个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号