2016-11-29 22 views
1

我想運行這個程序,以三角形的頂點作爲輸入。 但我面臨錯誤。有人可以幫我弄這個嗎 ?面向運行編程的錯誤

我正在嘗試創建一個點類,繼承三角形類並接受三角形的頂點作爲輸入。

#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

你甚至不會告訴我們錯誤是什麼? – csmckelvey

+0

我得到這個錯誤「中止(核心轉儲)」。我可以通過所有的頂點作爲輸入,但是它會報告這個錯誤並崩潰。 – Sathish

回答

2

您初始化向量用3 P=std::vector<Point>(3);那麼你試圖讀取該元件P [3] read_Point(P[3]);

增加矢量的大小或讀取開始索引零向量。