0

ヘッダーファイルがありますhelper.h

class helper
{

public:
    static int someVal();   
};

int helper::someVal()
{
   return 999;
}

私のcクラスでは、次のようにsomeValメソッドを呼び出します

#include "helper.h"
.
.
int answer = helper::someVal();

代わりにこのような電話をかける方法はありますか?

int answer = someVal();

以下の解決策は helper.h --

static int someVal();   

 int someVal()
    {
        return 999;
    }
4

3 に答える 3

4

正確ではありませんがhelper、クラスの代わりに名前空間を作成できます。

namespace helper
{
    static int someVal();   
}

using namespace helper;
int answer = someVal();

質問と同じように関数を定義できます。実際にはusing namespace、どの関数が呼び出されたかを理解しやすくなるため、独自の関数には使用しない方がよい場合がよくあります。

于 2012-12-02T17:26:55.817 に答える
2

関数を持つクラスしかない場合は、代わりに with 関数をstatic使用できます。後で名前空間名なしで関数にアクセスするためnamespaceに使用できます。using namespace

于 2012-12-02T17:27:19.343 に答える
0

なぜしたいのですか?コードを読んでいる人 (近い将来あなた自身でさえも) は、関数をグローバルと誤解しないことを非常に嬉しく思います。クラスとメンバー関数に適切な名前を付けると、クラス名がないと重要な情報が失われます。Factory::get_instance()よりも多くの情報を運びますget_instance()

于 2012-12-02T17:48:38.020 に答える