Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Ошибка при передачи структуры в конструктор класса

32K
24 ноября 2010 года
Агроном
28 / / 14.11.2008
//h-----------------------------------------------------------------------
#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)'.
В чем ошибка???
Заранее спасибо за внимание!
33K
25 ноября 2010 года
hivewarrior
205 / / 16.11.2010
Конструктор требует структуру типа Showy(Showsstruct);
Ты же ему передаешь структуру P = new Showy(TMyStruct);
а в свою очередь она типа:
MyStruct TMyStruct;
То, что содержание одинаковое, не делает их тождественными.
11
25 ноября 2010 года
oxotnik333
2.9K / / 03.08.2007
конструктор Showy не определен для параметра TForm1::M
код бы отформатировать
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог