Ошибка при передачи структуры в конструктор класса
#ifndef Unit1H
#define Unit1H
//------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
TButton *Button1;
TMemo *Memo1;
void __fastcall Button1Click(TObject *Sender);
private: // User declarations
struct MyStruct
{
AnsiString S;
AnsiString P;
};
MyStruct TMyStruct;
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
//------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//------------------------------------------------------------------------
#endif
//--------------------------------------------------------------------
//cpp
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include "Unit2.h"
//------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
Showy *P;
//------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TMyStruct.S = "Привет";
TMyStruct.P = "Мир)";
P = new Showy(TMyStruct);
}
//------------------------------------------------------------------------
класс в который передается структура:
//h
#ifndef Unit2H
#define Unit2H
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
//---------------------------------------------------------------------------
class Showy
{
private:
struct Showsstruct
{
AnsiString S;
AnsiString P;
};
public:
Showy(Showsstruct);
};
#endif
//------------------------------------------------------------------------
//cpp
#pragma hdrstop
#include "Unit2.h"
#include "Dialogs.hpp"
//------------------------------------------------------------------------
#pragma package(smart_init)
//------------------------------------------------------------------------
Showy::Showy(Showsstruct R)
{
ShowMessage(R.S + " " + R.P);
}
//------------------------------------------------------------------------
При билде такая ошибка:[C++ Error] Unit1.cpp(29): E2285 Could not find a match for 'Showy::Showy(TForm1::M)'.
В чем ошибка???
Заранее спасибо за внимание!
Ты же ему передаешь структуру P = new Showy(TMyStruct);
а в свою очередь она типа:
MyStruct TMyStruct;
То, что содержание одинаковое, не делает их тождественными.
код бы отформатировать