以前にhファイルに収められていたcppファイルにメソッドを実装するときに、クラスの明示的な文を単純化する方法はありますか?cppファイル内のすべてのメソッドについて繰り返しクラスインスタンス化を避けるためにとにかくありますか?
何かのような...
MyClass:: {
void my_method() { implementation };
void my_other() { implementation };
}
以前にhファイルに収められていたcppファイルにメソッドを実装するときに、クラスの明示的な文を単純化する方法はありますか?cppファイル内のすべてのメソッドについて繰り返しクラスインスタンス化を避けるためにとにかくありますか?
何かのような...
MyClass:: {
void my_method() { implementation };
void my_other() { implementation };
}
号
C++ 11標準§9.3 [class.mfct] p5
:メンバ関数の定義は、そのクラス定義の外字句場合
、メンバー関数名は、
::
演算子を使用してそのクラス名で修飾されます。
いいえ、それらを回避するための唯一の方法はありませんが、良いIDEがタイピングを容易にするために、いくつかのリファクタリング機能を提供します
class MyClass
{
void my_method() { implementation };
...
}
に似たヘッダファイルに直接インライン宣言を使用することです。 Visual Studioの場合、VisualAssistは良いプラグインです(どのような方法でも関係ない)。
必要に応じて、何か独自のマクロを作成することができます。
// This is very ungly, probably best avoided
#define lessTyping(method) MyClass::##method()
lessTyping(my_method)
{
}
をしかし、それは本当にreadbilityを傷つけるでしょう。
標準のルックアップ機能は私のものより高速です;)http://www-d0.fnal.gov/~dladams/cxx_standard.pdfページ154 – Jack
@Jack:Wow、それはC++ 98標準です。あなたは*多分*更新を取得する必要があります。 :) – Xeo
真剣に更新された何かを見つけるまで、ずっと前にそれをブックマークして更新したことはありませんでした:/ – Jack