2016-12-04 8 views
-2

私は、同じプロジェクトで使用される(フィボナッチ数の印刷、掛け算表の表示などの)多数の(自己構築型の)数学関数を持っています。私は、数学関数ではなく、お互いに関連していないので、それらをすべてクラスに入れるべきではないことを知っています。そして、それらの関数がクラスに入れられるなら、彼らは手続き型自然クラスになります。これは手続き型のクラスの代わりに名前空間を使う正しい方法でしょうか(私はそれぞれの独立した関数をそれ自身の名前空間に入れます)?名前空間の使い方

main.cppに

#include "Coin.h" 
#include <iostream> 
using namespace std; 

int main(){ 
    Coin::tosses();  
} 

Coin.h

namespace Coin{ 
    void tosses(); 
} 

Coin.cpp

#include "Coin.h" 
#include <iostream> 
using namespace std; 

namespace Coin{ 
    void tosses(){ 
     cout << 3 << endl; // sample code 
    } 
} 
+3

ですね:Coin.cppで

namespace Coin { void tosses(); } 

は、これを行いますあなたの関数のように、クラスには全く入れてはいけません。しかし、より詳細な情報がなければ、決定的であることは不可能です。 – Galik

+0

どこにC++でクラスを使わずに別のファイルに入れたら、mainからメソッドを使うのですか? – Neel

+0

写真ではなく、将来コードを投稿してください。コードをコピー/ペーストして、実際の実行可能な例をコードに基づいて作成することができます。 –

答えて

2

あなたのクラスにはメンバ変数を持っていないだけで、なぜ使用クラスをメンバ関数を持っている場合全く?

関数の周りに名前空間を囲むだけです。それが彼らが創造された理由です。コインクラスのあなたの例を使用して

は... Coin.hで

は、次のようなものを置く:

namespace Coin 
{ 
    void tosses() 
    { 
     // Your code here 
    } 
} 
+0

これらの変数には、今添付した図のような変数があります。あなたはそれを別のファイルを置くことを意味しない限り、それらをラップしないと、メインファイルを本当に大きくすることはできませんが、それを.hや.cppに入れないでどうすればいいですか? – Neel

+0

これらの関数には、メンバー変数ではなくローカル変数があります。 –

+0

質問を編集しましたが、これは良いでしょうか? – Neel