h:\test\complex2.h(23) : fatal error c1001: internal compiler error
(compiler file 'msc1.cpp', line 1786)
please choose the technical support command on the visual c++
help menu, or open the technical support help file for more information
error executing cl.exe.
test.exe - 1 error(s), 0 warning(s)
剛才上機遇到這個問題,急得我要死。
到網上搜了一下與運算子過載有關。出錯的是這句話:using namespace std;
在標頭檔案裡注釋掉這句,但是保留#include
ok!!!
將#include 改為#includeh> ,也ok!!!
這有解答
造成這種問題的原因是編譯器分配的記憶體超過了限制。
解決的辦法有三種:
1.給編譯器增大記憶體限制。在project(工程)->setting(設定)->c/c++的project option(工程選項)中,新增/zm#nn選項,#nn是乙個數字,取值最大為2000。預設為100。但是這種方法好像沒有什麼用處。
2.將模板類標頭檔案從stdafx.h中移出;
3.不使用預編譯標頭檔案。project->setting->c/c++,選擇所有的.cpp檔案,都使用「不使用預編譯標頭檔案「的選項。缺點是編譯的時候很慢
C 中運算子過載
運算子過載使得使用者自定義的資料以一種更簡潔的方式工作。比如int x,y 可以為y x y 而 my c1,c2 如果想使得兩個自定義的物件相加,以前只能調 用函式計算它們的和。而現在只要定義了運算子過載就能實現c1 c1 c2.所謂過載,就是重新賦予新的含義。函式過載就是對乙個已有的函式賦予新的...
C 中運算子過載
運算子過載可以寫在類的內部,也可以寫成全域性函式形式,其中運算子 在過載時必須宣告為類的成員函式 而運算子 sizeof 不能被過載 演算法運算子的過載不會改變運算子原有的優先順序。例子 include include include using namespace std class comple...
C 中的運算子過載(一) 運算子過載的概念
概述 運算子過載,就是對已有的運算子重新進行定義,賦予其另一種功能,以適應不同的資料型別。運算子過載 operator overloading 只是一種 語法上的方便 也就是它只是另一種函式呼叫的方式,只是為了方便我們使用,運算子只能運算內建的資料型別,對於自定義的資料型別不能運算,所以我們可以過載...