※ ChatGPTを利用し、要約された質問です(原文:変数の隠蔽とスコープ)
変数の隠蔽とスコープ
このQ&Aのポイント
変数の隠蔽とスコープについて理解を深めたい。JavaやC#の知識からコードの出力結果は理解できるが、グローバル変数にアクセスする方法について疑問がある。
本屋で評価の高い書籍を立ち読みして変数の隠蔽とスコープについて学びたい。コードの出力結果を理解できるが、グローバル変数へのアクセス方法がわからない。
変数の隠蔽とスコープについて学びたい。JavaやC#の知識からコードの出力結果は理解できるが、グローバル変数のアクセス方法についての疑問がある。
いつまでも初心者のままじゃ駄目だなあと思い,
用事のついでに本屋まで行って
評価が高いらしい
http://www.amazon.co.jp/exec/obidos/ASIN/4797328541/Lvdrfree-22?dev-t=D1KDF7Q74DD3A2%26camp=2025%26link_code=xm2
を100ページほど立ち読みしてみた。(買ってません)
で、まあ内容を理解できているかは別として
可視性とアクセス制御という話があって
Java や C#の時の知識から
以下のコードの出力結果は一応理解できます。
折角なので
質問もコードの中に書いてみました。
==========================
#include <iostream>
int a = 5;
class fuga{
public:
int a;
fuga(){
a = 3;
}
};
class hoge : fuga{ //実際の書籍では public fugaだったような
public:
void printa(){
std::cout << a << std::endl; //コンパイル通っちゃったけど,ここからグローバル変数a(==5)にアクセスする方法はあるの?
}
};
int main(){
hoge* p = new hoge;
p->printa();
std::cout << a << std::endl;
delete p;
// 3
// 5
}
お礼
ありがとうございます BCC 5.5.1 + WinXPにて確認できました。