2016-12-04 3 views
-2

Ich habe viele (selbst gebaute Mathematik) -Funktionen (wie Fibonacci Zahlen drucken, Multiplikationstabellen anzeigen usw.), die unabhängig voneinander funktionieren, aber im selben Projekt verwendet werden. Ich weiß, ich sollte sie nicht alle in einer Klasse zusammenfassen, da sie nicht miteinander verwandt sind, als mathematische Funktionen, und sie wären prozedurale Naturklassen, wenn die Funktionen in einer Klasse zusammengefasst würden. Wäre dies der richtige Weg, um Namespaces anstelle von prozeduralen Klassen zu verwenden (ich setze jede unabhängige Funktion auf ihren eigenen Namespace)?Wie verwende ich Namespaces

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

Es klingt wie deine Funktionen sollten überhaupt nicht in Klassen sein. Aber ohne detailliertere Informationen ist es unmöglich, definitiv zu sein. – Galik

+0

Wo würde ich sie dann, wenn in einer anderen Datei ohne Klassen in C++, wie würde ich die Methoden von Main verwenden? – Neel

+0

Bitte in Zukunft Code eingeben, keine Bilder. Wir können Code kopieren und einfügen und auf diesem Wege tatsächlich ausführbare Beispiele erstellen, die auf Ihrem Code basieren. –

Antwort

2

Wenn haben Ihre Klassen keine Variablen Mitglied und nur Elementfunktionen haben, warum Klassen verwenden überhaupt?

Umgeben Sie stattdessen einen Namespace um Ihre Funktionen. Deshalb wurden sie geschaffen.

Ihr Beispiel der Klasse Münze ...

In Coin.h setzen etwas wie folgt aus:

namespace Coin 
{ 
    void tosses(); 
} 

In Coin.cpp dies tun:

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

Sie haben Variablen wie in den Bildern, die ich jetzt angehängt habe. Würde man sie nicht so einpacken, würde man die Datei mit main wirklich groß machen, es sei denn, man meint es mit einer anderen Datei, aber wie würde ich das machen, ohne sie in eine .h oder .cpp einzubauen? – Neel

+0

Diese Funktionen haben lokale Variablen, keine Mitgliedsvariablen. –

+0

Ich habe die Frage bearbeitet, wäre das besser? – Neel