[解決済み] .cpp ファイルに C++ 名前空間メソッドを定義する正しい方法
2022-09-14 03:54:11
質問
おそらく重複していると思いますが、簡単に検索できるものではありません...。
のようなヘッダが与えられる。
namespace ns1
{
class MyClass
{
void method();
};
}
見たところ
method()
は.cppファイル内でいくつかの方法で定義されています。
バージョン1です。
namespace ns1
{
void MyClass::method()
{
...
}
}
バージョン2です。
using namespace ns1;
void MyClass::method()
{
...
}
バージョン3:
void ns1::MyClass::method()
{
...
}
正しい」方法というのはあるのでしょうか?どれも同じ意味ではないという意味で、「間違っている」のでしょうか?
どのように解決するのですか?
バージョン2では、どの名前空間の
MyClass
がどの名前空間に属しているかが分からず、非論理的です(クラス関数が同じ名前空間にない?)
バージョン1が正しいのは、名前空間で、関数を定義していることを示すからです。
バージョン3も正しいです。
::
スコープ解決演算子を使って
MyClass::method ()
を名前空間内の
ns1
. 私はバージョン3が好きです。
参照 名前空間 (C++) . これが一番良い方法です。
関連
-
[解決済み】変数 '' を抽象型 '' と宣言できない。
-
[解決済み】Cygwin Make bash コマンドが見つかりません。
-
[解決済み】デバッグアサーションに失敗しました。C++のベクトル添え字が範囲外
-
[解決済み】「Expected '(' for function-style cast or type construction」エラーの意味とは?
-
[解決済み】エラー:free(): 次のサイズが無効です(fast)。
-
[解決済み】1つ以上の多重定義されたシンボルが見つかる
-
[解決済み】演算子のオーバーロード C++; <<操作のパラメータが多すぎる
-
[解決済み] C++テンプレート関数定義の.CPPファイルへの格納
-
[解決済み] なぜこのプログラムは3つのC++コンパイラで誤って拒否されるのですか?
-
[解決済み】C++でファクトリーメソッドパターンを正しく実装する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++エラー。アーキテクチャ x86_64 に対して未定義のシンボル
-
[解決済み】C++ - 解放されるポインタが割り当てられていないエラー
-
[解決済み】C++のGetlineの問題(オーバーロードされた関数 "getline "のインスタンスがない
-
[解決済み】 != と =! の違いと例(C++の場合)
-
[解決済み】C++でランダムな2倍数を生成する
-
[解決済み】c++でstd::vectorを返すための効率的な方法
-
[解決済み] 式はクラス型を持つ必要があります。
-
[解決済み】CMakeエラー at CMakeLists.txt:30 (project)。CMAKE_C_COMPILER が見つかりませんでした。
-
[解決済み】なぜ、サイズ8の初期化されていない値を使用するのでしょうか?
-
[解決済み】C++の「翻訳ユニット」とは何ですか?