使用

2011-01-24 4 views
4

私はmyclass.hppで静的関数を露出したクラスを持っている使用

class MyClass { 
public: 
    static std::string dosome(); 
}; 

まあ、myclass.cppに私は何を書くべき: この:

std::string MyClass::dosome() { 
    ... 
} 

かこの:

static std::string MyClass::dosome() { 
    ... 
} 

私は静的キーワードを繰り返すべきではないと思います...それは正しいですか?

+0

staticキーワードを繰り返してはいけませんが、理由を調べることに興味があります – MattSmith

+0

@MattSmith:以下の回答を参照してください。 – sharptooth

答えて

10

C++コンパイラはこれを許可しません。

static std::string MyClass::dosome() { 
    ... 
} 

関数定義でstaticを持つので、完全に異なる何かを意味 - staticリンケージ(機能を意味するだけで、同じ翻訳単位から呼び出すことができます)。

メンバー関数宣言にstaticがあれば十分です。

+0

ああ、そうです...それはCのようなものです...静的な機能に遭遇すれば、あなたが指摘したように、同じファイルからのみ呼び出すことができることを意味します。あなたのexaustive答えていただきありがとうございます。 – Andry

5

キーワードstaticを繰り返しないでください。これを行うにはエラーが発生します。

1

はいstaticキーワードは、クラス定義の外で関数本体を定義するときには使用しないでください。