インテリセンスにprivate変数を表示させないようにしたい

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
sadora3
記事: 175
登録日時: 11年前

インテリセンスにprivate変数を表示させないようにしたい

#1

投稿記事 by sadora3 » 6年前

タイトルにもある通り、インテリセンスにprivate変数を表示させないようにしたいです。
コンパイラ:VisualStudio2010
言語:C++
OS:Windows10

例えば、下のようなクラスがあったとします。

コード:

class TEST{
private:
	int aaa;
	float bbb;
	char ccc[256];
public:
	void F();
	int F2();
};
そして、どこかのローカルスコープで、

コード:

Test.
と書き、Ctrl + Spaceを押すと、インテリセンスが表示されますよね。
しかし、このままだと、「aaa」「bbb」「ccc」「F()」「F2()」が表示されてしまいます。
これをVisualStudioの設定、もしくはTESTクラスの実装方法の変更により、「F()」と「F2()」の表示のみにしたいです。
どうすれば、上記のことを実現できるのでしょうか?

質問はもう一つあります。
privateに存在する変数は、そもそもアクセス権限がないわけですから、扱えない(使う必要が無い)じゃないですか。
それなのに、どうしてインテリセンスは表示してくるのでしょうか?
どう考えても、無駄な気がします。

アバター
purin52002
記事: 235
登録日時: 7年前
連絡を取る:

Re: インテリセンスにprivate変数を表示させないようにしたい

#2

投稿記事 by purin52002 » 6年前

>>しかし、このままだと、「aaa」「bbb」「ccc」「F()」「F2()」が表示されてしまいます。
これをVisualStudioの設定、もしくはTESTクラスの実装方法の変更により、「F()」と「F2()」の表示のみにしたいです。
どうすれば、上記のことを実現できるのでしょうか?

Pimplイディオムでググると幸せになれるかもしれません。
(それでも隠蔽用の変数は見えてしまうけれども)

もう片方の質問については私の知識不足によりお答えできません^^;
c++初心者を自負しています。
質問者さんには今後私にプログラミングを教えてくれるようにやさしく丁寧に教えるつもりです。ぎぶあんどていく^p^
回答者さんには精一杯感謝します。ぎぶおんりー^p^

アバター
keito94
記事: 264
登録日時: 7年前
連絡を取る:

Re: インテリセンスにprivate変数を表示させないようにしたい

#3

投稿記事 by keito94 » 6年前

オフトピック
また、マニアックな質問をww
デバッグは投げ捨てるものではない。
今までの質問でこれは学んだこと。
質問する時は、必ずちゃんと調べた上に問題をもとにした仕様書を作ってから質問すること。
仕様書の大切さを改めて思い知った…。

ISLe
記事: 2650
登録日時: 13年前
連絡を取る:

Re: インテリセンスにprivate変数を表示させないようにしたい

#4

投稿記事 by ISLe » 6年前

sadora3 さんが書きました:privateに存在する変数は、そもそもアクセス権限がないわけですから、扱えない(使う必要が無い)じゃないですか。
それなのに、どうしてインテリセンスは表示してくるのでしょうか?
どう考えても、無駄な気がします。
TEST::F()やTEST::F2()の定義の中ではアクセス権があるのに表示されないと困るのではないでしょうか?

でもそれを実現しようとするとコンパイル時の文法解析と同等の処理が必要。
処理コストがかかるので実現していないのではないでしょうか。
コンマ数秒でもキーボードから単語入力するたびに待たされたらイライラしてブチ切れる気がします。

ちなみにVisual Studio 2017では、IDEの設計が見直されて、インテリセンスも、sadora3さんが期待するような、アクセス可能なものしかデフォルトで表示されない仕様になってます。

sadora3
記事: 175
登録日時: 11年前

Re: インテリセンスにprivate変数を表示させないようにしたい

#5

投稿記事 by sadora3 » 6年前

>>purin52002さん
Pimplイディオムは、非常に参考になりました。
回答ありがとうございました。

>>keito94さん
マニアックでしょうかw

>>ISLeさん
確かにprivate変数は、自クラススコープ内ではアクセス権があるので、インテリセンスに表示されるべきでしたね。
納得しました。
早速VisualStudio2017Communityをダウンロードしてみましたが、これインストールめちゃくちゃ大変ですね。
ワークロードを選ばなければならない仕様は、プログラム未経験者を混乱させ、プログラミング入門の敷居を高くしているのではないだろうかと思いました。
ですが、必要となった時に追加でインストール出来るのは、便利ですね。
ちょっとインストール後、触って見ました。
ショートカットキーが変わっていて腹が立ったり、デザインが変わってて困惑したりしました。
ですが、インテリセンスはISLeさんの仰る通り、私が求めていた動作をしてくれました。
VisualStudio2010はもう古そうなので、これを気に2017に乗り換えようと思います。
回答ありがとうございました。

返信

“C言語何でも質問掲示板” へ戻る