Klasse Konstruktor-Argumente C++

Erstelle ich ein pair1-Klasse für die x-und y kartesische Koordinatensystem. x und y sind verdoppelt. Muss ich haben 3-Konstruktoren.

  1. Keine Argumente, standardmäßig x und y auf null.
  2. Einem argument x zugewiesen und standardmäßig y auf null.
  3. Eine arugeument defaults x auf null und weist y. Ich bin mir nicht sicher, ob ich bin einrichten die Klasse Recht. Ich bekomme den folgenden Fehler: pair1::pair1(double) und pair1::pair1(double) können nicht überladen werden.

Meiner Klasse:

class pair1
{
private:
    double x;
    double y;

public:
    pair1(){ x = 0.0, y = 0.0; }    
    pair1( double a ){ x = a; y =0.0; }
    pair1(double b){ x = 0.0;  y = b; }
};
Sie haben zwei ctors mit der gleichen Signatur. Wenn ich den Anruf pair1(3.1), die man ausführen soll?
Wie wärs mit einem einfachen std::pair<double, double>? Sie konnte nur initialisieren, wie x(1.2, 0) oder x(0, 4.3) oder x(). Das wäre viel effizienter als Ihre code (z.B. warum bist du nicht mit Initialisierungen?).

InformationsquelleAutor Stephen Rogers | 2011-06-30

Schreibe einen Kommentar