フレンド 解答ページ | Programming Place Plus C++編【言語解説】 第25章

トップページC++編

C++編で扱っている C++ は 2003年に登場した C++03 という、とても古いバージョンのものです。C++ はその後、C++11 -> C++14 -> C++17 -> C++20 -> C++23 と更新されています。
なかでも C++11 での更新は非常に大きなものであり、これから C++ の学習を始めるのなら、C++11 よりも古いバージョンを対象にするべきではありません。特に事情がないなら、新しい C++ を学んでください。 当サイトでは、C++14 をベースにした新C++編を作成中です。

問題①

問題① あるヘッダファイルに定義されているクラスX を使用する際、#include でなく、前方宣言だけで対応可能なものと、そうでないものとに分類してください。

X x1;
X* x2;
void func(X&);
X::type t;        // type は「公開」されているtypedef名
X::E1 e;          // E1 は「公開」されている enum の列挙定数
X::Enum mEnum;    // Enum は「公開」されている enum の型名
x2->func();       // func() は X の「公開」されているメンバ関数


X を前方宣言するだけで良いものは、以下の2つです。

X* x2;
void func(X&);

このように、ポインタや参照が必要なだけであれば、定義は必要ありません。


参考リンク


更新履歴

’2016/1/23 新規作成。



第25章のメインページへ

C++編のトップページへ

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
X で ポストフォロー LINE で送る noteで書く
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー
先頭へ戻る