2016-11-29 7 views
1

Ich versuche, dieses Programm auszuführen, Scheitelpunkte eines Dreiecks als Eingaben zu nehmen. Aber ich bin mit Fehlern konfrontiert. Kann mir jemand dabei helfen?Fehler beim Ausführen der Programmierung

Was ich versuche zu tun, erstellen Sie eine Punktklasse, erben in einer Dreiecksklasse und akzeptieren die Eckpunkte des Dreiecks als Eingaben.

#include <iostream> 
#include <vector> 
using namespace std; 

#Defines a class Point. 
class Point 
{ 
    private: 
     float x; 
     float y; 
    public: 
     int read_Point(Point &P) 
     { 
      std::cin >> P.x >> P.y; 
     } 
}; 

#Defines a class Triangle 
class Triangle : public Point 
{ 
    private: 
     std::vector<Point> P; 
    public: 
     int make_triangle() 
     { 
      P=std::vector<Point>(3); 
      read_Traingle(); 
      return 0; 
     } 
     void read_Traingle() 
     { 
      read_Point(P[1]); 
      read_Point(P[2]); 
      read_Point(P[3]); 
     } 
}; 

int main() 
{ 
    Triangle Tri; 
    Tri.make_triangle(); 
    return 0; 
} 
+0

Sie werden uns nicht einmal sagen, was die Fehler sind? – csmckelvey

+0

Ich bekomme diesen Fehler "Abgebrochen (Core Dumped)". Ich kann alle Scheitelpunkte als Eingabe übergeben, aber dann meldet es diesen Fehler und stürzt ab. – Sathish

Antwort

2

Sie initialisiert, um den Vektor mit 3 P=std::vector<Point>(3); dann das Element P [3] read_Point(P[3]);

Zunahme der Größe des Vektors oder lesen Sie den Vektor, beginnend mit dem Index Null zu lesen versucht.