インナークラス – プログラミング – Home

通知
すべてクリア

[解決済] インナークラス


arashi
 arashi
(@arashi)
ゲスト
結合: 14年前
投稿: 5
Topic starter  

Win98SE VC++6.0

class Main
{
class Inner
{
public:
void Test( Main &main )
{
// アクセスエラー
main.m_val = 2;
}
};

private:
int m_val;

public:
Main() : m_val( 0 ){}
};

色々なサイトを拝見しますと、インナークラスは外側のクラスの private に
アクセスできる見たいな内容が書かれているのですが、私の環境では、
private メンバにアクセスできません。のコンパイルエラーが出ます。

どうしてなのでしょうか。?
よろしくお願いします。


引用未解決
トピックタグ
仲澤@失業者
(@uncle_kei)
Prominent Member
結合: 5年前
投稿: 828
 

VS2008では通っちゃいますねぇ(vv;)。
たぶん、コンパイラ(VC6)が古いせいぢゃないでしょうか。


返信引用
arashi
 arashi
(@arashi)
ゲスト
結合: 14年前
投稿: 5
Topic starter  

コンパイラが古いからコンパイルできないのは正直驚きました。
残念ですが、私の環境ではできないと諦めます。

どうも情報提供ありがとうございます。


返信引用
PATIO
(@patio)
Famed Member
結合: 3年前
投稿: 2660
 

既に解決になっていますが。

多分、あちこちの掲示板で書かれているので検索すれば
引っかかりそうですが、
VC++6.0のコンパイラは実装が古いので最新のC++の規格書への準拠率は
当然低くなります。古いコンパイラを使う場合はこの部分を認識しておく
必要があります。
最新のC++の規格にできるだけ準拠しているコンパイラが使いたいのであれば、
開発環境も最新の物を使う必要があります。
少なくともVC++6.0は既にMicrosoftもサポートを止めてしまったくらい
古い環境です。特別な理由が無いのであれば、最新の環境を使った方が良いです。
特に勉強しようとしているのであれば、古いコンパイラはお勧めしません。
最近ではMicrosoftもExpress Editionと言う形で無料の開発環境を出しています。
C++のコンパイラとして使う分にはこれで十分だと思います。
もっともGUIのアプリを作ろうとするとMFCが使えないのでかなり不自由になりますが。
MFCを使ってGUIアプリを作りたいのであれば、有料の環境を購入するしか有りません。
その辺はMSDNのHPでも書かれていると思うので探して読んでみて下さい。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました