2016-06-16 14 views
0

私は静的クラスを持っていますが、そのクラスメソッドからいくつかのメソッドが呼び出されています。プライベート関数としてヘッダファイルに追加することはできないので、クラス外でそれらを見たくないので、私はそれらをcppファイルでコーディングしています。私の質問は、私はプロジェクトのドキュメントを書く必要があるので、とにかくヘッダーにこれらの関数を追加することができますか? (私はそれがコーディングの説明でないなら、cppにドキュメントを書くのが好きではありません)。ヘッダ内のスタティッククラスメソッド宣言

例:あなたは「メソッド」と「機能」の用語を混同しているすべての

MyStaticClass.h 

class MyStaticCLass{ 
public: 
/** 
* I can write the doc here :D 
*/ 
static void myFunction(); 
} 

MyStaticClass.cpp 
void MyStaticClass::myFunction(){ 
    myMethod1(); 
    myMethod2(); 
} 
/** 
*I want to write the doc of this function but in the header 
*/ 
void myMethod1(){ 
//do something 1 
} 
/** 
*I want to write the doc of this function but in the header 
*/ 
void myMethod2(){ 
// do something 2 
} 
+1

"静的クラス"のようなものはありません。 –

+0

コードを 'details'名前空間に入れてください。慣習では、実装の詳細を使用すべきではないとみなすことができます。 – NathanOliver

+0

@PeteBecker static class:静的関数のみを持つクラス?その理由から質問は理解できないでしょうか?私はそれを変更することができます:) –

答えて

0

まず。メソッドはクラスメンバ関数(静的かどうか)です。これはmyFunctionです。 meMethod1myMethod2は、ではなく、のメソッドであり、メンバ関数でないか、「フリー」な関数です。あなたが持っている場合は、

#include "MyStaticClass.h" 

// An anonymous namespace 
namespace 
{ 
    /** 
    *i want to write the doc of this function but in the header 
    */ 
    void myMethod1(){ 
     //do something 1 
    } 

    /** 
    *i want to write the doc of this function but in the header 
    */ 
    void myMethod2(){ 
     // do something 2 
    } 
} 

void MyStaticClass::myFunction(){ 
    myMethod1(); 
    myMethod2(); 
} 

さらに:あなたは機能myMethod1myMethod2のみMyStaticClass.cppソースファイル内からcalableになりたい場合は

第二に、私はあなたがnamespace独自の匿名に入れてお勧めしますクラスのメンバー関数( "メソッド")はstaticでメンバー変数はありません。namespaceと変わりはありません。あなたの場合、あなたのヘッダーファイルは次のようになります

#pragma once 

namespace MyStaticClass 
{ 
    /** 
    * i can write the doc here :D 
    */ 
    void myFunction(); 
} 

上記のソースファイルは変更する必要はありません。

+0

訂正してくれてありがとうございます:D、これは私がヘッダーに宣言を書いて得られるものです。 –

+0

@LuisRubiera関数を「プライベート」にして、単一のソースファイルからしか使用できないようにするには、匿名の名前空間(図のように)または非メンバ関数を静的にする(宣言する前に宣言します) 。 –

+0

* method *のこの定義はどこから取得しましたか? C++標準では存在しません。静的メンバー関数( "メソッド")のみを持ち、メンバ変数を持たないクラスを持っている場合は、名前空間*と違いはありません。違いはたくさんあります。 – SergeyA

関連する問題