独習C++(第3版)で学習していますが、書籍通りに入力してもコンパイルエラーが出てしまい、困っております。
P.199 6.5.フレンド演算子関数の使用にあるソースコードをそのままコピーしただけです。
フレンド関数を利用し、演算子オーバーロードをすると、コンパイルエラーが発生してしまうようです。
(10):friend coord operator+(coord ob1,int i);
C:\jsp\tools\samp13\XXXX.cpp(10) : fatal error C1001: 内部コンパイラ エラー
(コンパイラ ファイル 'msc1.cpp', 行番号 1786)
Visual C++ のサポート情報 コマンドを選択してください
ヘルプ メニュー、 またはサポート情報のヘルプ ファイルを参照してください
少し検索したところVC++6.0だとバグで起こってしまうとのことですが、この状態からコンパイルエラーを無くすには何をしたらよいのでしょうか?
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
こんにちは。
>>少し検索したところVC++6.0だとバグで起こってしまうとのことですが、この状態からコンパイルエラーを無くすには何をしたらよいのでしょうか?
クラスの中に直接書くか、inline関数として外に書くしか無い様です。
struct coord
{
friend coord operator + (coord ob1, int i);
{
return ob1.??? + i;
}
};
又はfriendを外してヘッダに書く
inline coord operator + (coord ob1, int i);
{
return ob1.??? + i;
}
>>ディレクティブを 'stdafx.h' に追加するか、プリコンパイル済みヘッダーをビルドし直します
stdafx.hをクリックして、ヘッダを開き、
// TODO: プログラムに必要な追加ヘッダーをここで参照して下さい。
とコメントされている付近に#include<iostream>と書いて見て下さい。
それでも駄目であった場合は、ソリューションごとクリーンしてビルドし直して見て下さい。
VC60も使用する事があるのなら、MicroSoftのホームページから、VC60用のサービスパックをダウンロードしておく事をお勧めします。
最新はSP6です。
SP5ではインラインアセンブラでmmx/sse命令を書くことが出来る様になっています。しかし、SP6ではc++のテンプレートパラメータの問題の一部が改善された反面、mmx/sse命令が使えなくなってしまいました。
どちらを選ぶかは、質問者様次第です。
http://www.microsoft.com/japan/msdn/vstudio/down …
No.3
- 回答日時:
ちょっと待て.
「#include<iostream> でコンパイルエラーが出る」って書いてあるけど, 正確にどのようなエラーか書けますか?
この回答への補足
こんな感じです。
VC++2008ExpressEdition自体使用が初めてです。
------ ビルド開始: プロジェクト: XXXX, 構成: Debug Win32 ------
コンパイルしています...
XXXX.cpp
.\XXXX.cpp(1) : warning C4627: '#include <iostream>': プリコンパイル済みヘッダーの使用を検索中にスキップされました
ディレクティブを 'stdafx.h' に追加するか、プリコンパイル済みヘッダーをビルドし直します
.\XXXX.cpp(46) : fatal error C1010: プリコンパイル ヘッダーを検索中に不明な EOF が見つかりました。'#include "stdafx.h"' をソースに追加しましたか?
ビルドログは "file://c:\Users\TXX-PN034\Documents\Visual Studio 2008\Projects\XXXX\XXXX\Debug\BuildLog.htm" に保存されました。
XXXX - エラー 1、警告 1
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
No.2
- 回答日時:
> 何かアップデート等で直す事はできないのでしょうか?
少し検索すれば分かるとおもいますが、
VC6はもう10年以上前の古いコンパイラです。
マイクロソフトはその後継版を既に無償で提供しています。
最新は、Visual Studio 2008 でVC9と呼ばれています。
この回答への補足
Visual Studio 2008は入れてあるんですが、
VC6.0とは操作方法が異なるみたいでよくわからないんですよね・・
そのままソースコピペしてコンパイルすると、
#include<iostream>
でコンパイルエラーが出るほどですし・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) python fbprophetについて 1 2022/09/29 19:44
- C言語・C++・C# ExcelCS 1 2023/01/27 19:47
- Excel(エクセル) 【VBA】複数ブックから特定のシートを抽出して一つのブックに集約するマクロについて 3 2022/09/04 15:05
- Visual Basic(VBA) 関数を最終行までコピー 3 2022/09/04 11:05
- C言語・C++・C# const char** p;のとき、free(p)でC4090エラーとなるのはなぜですか 3 2023/03/31 16:28
- Excel(エクセル) マクロか関数で処理したいのですが、教えて頂けませんか。 8 2022/10/31 15:18
- Excel(エクセル) Excelで漢字人名が勝手に並び変わる(続) 4 2023/03/21 21:28
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# C言語 ポインタ 配列 2 2022/06/02 17:29
- Wi-Fi・無線LAN PCWi-Fiの設定方法がわからなくて困っています。 4 2022/12/28 18:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ソフトの開発言語を調べる方法
-
C++でデスクトップGUIアプリ開...
-
unsigned long long 型のフォー...
-
2つのマシンでコンパイルしたld...
-
for文内での変数定義
-
Σの計算について
-
C言語でのコンパイラの作成方法
-
HP-UXのプログラムをSolaris、R...
-
COBOL計算式の中間ワーク桁数に...
-
CとC++の変数宣言について
-
C言語 入出力ファイルの読み書...
-
Visual Studio でmakefileを使...
-
C言語はC言語でできている?
-
中国語(簡体字)をソースコード...
-
DOSの文字の色を変える方法。
-
リリースモードとデバッグモー...
-
COBOLの論理演算子について
-
python エラー
-
エクセルのエラーメッセージ「4...
-
<math.h>があるのにsqrtが・...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
unsigned long long 型のフォー...
-
ソフトの開発言語を調べる方法
-
C++でデスクトップGUIアプリ開...
-
組み込みソフト。ROM領域にデータ
-
cc と gcc の違い
-
C++Builder → Visual C++ 移植...
-
printfなど、標準関数のソース...
-
COBOLのALPHABET...
-
COBOLの論理演算子について質問...
-
cobolで実行環境って何ですか?
-
Visual Studio でmakefileを使...
-
パーサとコンパイラの違いって?
-
昔のgraph.hというファイル
-
未使用引数の注意文出力を回避...
-
C言語でのコンパイラの作成方法
-
C言語はC言語でできている?
-
COBOL計算式の中間ワーク桁数に...
-
リリースモードとデバッグモー...
-
『Bin』ディレクトリは何の略語?
-
POWERCOBOLのSQL...
おすすめ情報