RAD Studio C ++ Builder中的三角网单调多边形

问题描述 投票:0回答:1

[C ++ Builder RAD Studio中的代码错误:[bcc32c错误] Unit10.cpp(267):没有匹配的构造函数,用于初始化“ triangulated_poly”。怎么了?请帮助,以便一切正常。//

//---------------------------------------------------------------------------

#include <vcl.h>
#include <vector>
#include <stack>
#pragma hdrstop

#include "Unit10.h"

using namespace std;
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm10 *Form10;

int ii=0;
//---------------------------------------------------------------------------
__fastcall TForm10::TForm10(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
class triangulated_poly :public polygone {
    Stack stack;
    int stack_length;
    point left_vertex;
    point right_vertex;
    diagonal* diagonals;
    flag_vertex* x_vertexes;
public:
    triangulated_poly(point* U_points, point* L_points, int UPPER_count, int LOWER_count);
    ~triangulated_poly();

    void x_sort();
    void triangulate();

};


triangulated_poly::triangulated_poly(point* U_points, point* L_points, int UPPER_count, int LOWER_count) :polygone(U_points, L_points, UPPER_count, LOWER_count) {
    ..........
}

triangulated_poly::~triangulated_poly() {
        .......
}



void triangulated_poly::triangulate() {
........
}
//---------------------------------------------------------------------------
void __fastcall TForm10::Button1Click(TObject *Sender)
{
HDC hdc=GetDC(Form10->Handle);
for (int i = 0; i < ii; i++)
{
MoveToEx(hdc,s[i].x,s[i].y,NULL);
LineTo(hdc,s[(i+1)%ii].x,s[(i+1)%ii].y);
}
triangulated_poly poly;
poly.triangulate();
}

c++ c++builder
1个回答
0
投票

triangulated_poly poly;

尝试使用其默认构造函数构造一个triangulated_poly

您从未为triangulated_poly声明默认的构造函数(即,空参数列表除外的构造函数),并且没有隐式声明的构造函数,因为您自己声明了至少一个构造函数。因此,编译器给您的错误是找不到合适的构造函数。

[将默认构造函数添加到triangulated_poly或使用与triangulated_poly构造函数的参数匹配的参数列表构造triangulated_poly

triangulated_poly poly{/*arguments here*/};
© www.soinside.com 2019 - 2024. All rights reserved.