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* x2;
Xvoid func(X&);
::type t; // type は「公開」されているtypedef名
X::E1 e; // E1 は「公開」されている enum の列挙定数
X::Enum mEnum; // Enum は「公開」されている enum の型名
X->func(); // func() は X の「公開」されているメンバ関数 x2
X を前方宣言するだけで良いものは、以下の2つです。
* x2;
Xvoid func(X&);
このように、ポインタや参照が必要なだけであれば、定義は必要ありません。
新規作成。
Programming Place Plus のトップページへ
はてなブックマーク に保存 | Pocket に保存 | Facebook でシェア |
X で ポスト/フォロー | LINE で送る | noteで書く |
RSS | 管理者情報 | プライバシーポリシー |