2016-12-10 8 views
-1

Ich versuche, eine Number Klasse zu erstellen, die einen arbitrary precision Datentyp nachahmt.Erstellen benutzerdefinierter Datentyp C++

Ich möchte die folgenden Operationen in der Lage sein, auszuführen:

Number a, b; 
cin >> a >> b; 
cout << "The sum of " << a << " and " << b << " is " 
<< a+b << endl; 

Zur Zeit habe ich:

class Number { 
    public: 
     Number & operator = (const Number & N); 
     bool operator == (const Number & N) const; 
     bool operator != (const Number & N) const; 
     bool operator < (const Number & N) const; 
     bool operator > (const Number & N) const; 
     bool operator <= (const Number & N) const; 
     bool operator >= (const Number & N) const; 
     Number operator += (const Number & N); 
     Number operator + (const Number & N) const; 
     Number operator *= (const Number & N); 
     Number operator * (const Number & N) const; 
     friend ostream & operator << (ostream & output, const Number & N); 
     friend istream & operator >> (istream & input, Number & N); 
}; 

Wie würde ich auf einen bestimmten Wert die Nummer Klasse einstellen können?

Number foo = 5; 
+1

definieren ein weiterer Überlastungsoperator, der eine Ganzzahl annimmt. –

+1

Das ist eine Initialisierung, also brauchen Sie einen Konstruktor, der ein 'int' braucht. – Galik

Antwort

1

Für diese Linie benötigen Sie einen Konstruktor. Hier ein Beispiel:

class Number { 
public: 
    Number(int I = 0); 
... 
}; 

Wenn zum Beispiel Ihrer Zahlen als eine Folge von Ziffern gespeichert werden in einem std::vector<int> genannt m_digits, dann ist die Definition Ihres Konstruktor könnte wie folgt aussehen:

Number::Number(int I) : m_digits(1, I) 
{ 
} 
Verwandte Themen