Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2009, 17:29   #1
dware
Новичок
Джуниор
 
Регистрация: 05.05.2009
Сообщений: 2
По умолчанию unresolved external "..." referenced from "...*.OBJ"

Пишу лабу по работе с классами, должен быть класс-родитель, содержащий прямоугольник, и класс-потомок, содержащий автомобиль. При запуске выдаёт: "[Linker Error] Unresolved external 'TRectg :: TRectg(int X01,int Y01,int X02,int Y02,Graphics::TColor Color0,Graphics::TCanvas* Canvas0)' referenced from D:\! STUDY\C\!2\LABOOP.OBJ" и ещё четыре аналогичных ошибки. Что я неправильно делаю?

Unit1.h:

Код:
#ifndef Unit1H
#define Unit1H
#include <graphics.hpp>
class TRectg
   {
   public:
   TRectg(int,int,int,int,TColor,TCanvas*);
   void Move(int,int);
   virtual void Show(TColor,TColor);
   protected:
   int X1,Y1,X2,Y2;
   TColor Color;
   TCanvas* Canvas;
   };
#endif
Unit1.cpp:

Код:
#pragma hdrstop
#include "Unit1.h"
#pragma package(smart_init)

//Конструктор
TRectg :: TRectg(int X01,int Y01,int X02,int Y02,
                 TColor Color0,TCanvas* Canvas0)
   {
   X1=X01;
   Y1=Y01;
   X2=X02;
   Y2=Y02;
   Color=Color0;
   Canvas=Canvas0;
   }

//Перемещение на заданное расстояние
void TRectg::Move(int dX,int dY)
   {
   Show(clBtnFace,clBtnFace)         //Удаление старого изображения
   X1+=dX;                           //Расчёт новых координат
   Y1+=dY;
   X2+=dX;
   Y2+=dY;
   Show(clBlack,Color)               //Рисование изображения на новом месте

//Отображение прямоугольника
void TRectg::Show(TColor CP,TColor CB)
   {
   Canvas->Pen->Color=CP;
   Canvas->Brush->Color=CB;
   Canvas->Rectangle(X1,Y1,X2,Y2);
   }
Unit2.h:

Код:
#ifndef Unit2H
#define Unit2H
#endif
#include "Unit1.h"

class TMashin : public TRectg
   {
   protected:
   TColor ColorD;
   public:
   TMashin(int X01,int Y01,int X02,int Y02,TColor Color0,TCanvas* Canvas0):
   TRectg(X01,Y01,X02,Y02,Color0,Canvas0){};
   void SetD(TColor);
   void Show(TColor,TColor);
   };
Unit2.cpp:

Код:
#pragma hdrstop
#include "Unit2.h"
#pragma package(smart_init)

//Отображение машины
void TMashin::Show(TColor CP,TColor CB)
   {
   Canvas->Pen->Color=CP;
   Canvas->Brush->Color=CB;
   int hx=(X2-X1)/10;
   int hy=(Y2-Y1)/10;
   TPoint pnt[7];
   pnt[0]=Point(X1,Y1+4*hy);
   pnt[1]=Point(X1,Y1+8*hy);
   pnt[2]=Point(X2-2*hx,Y1+8*hy);
   pnt[3]=Point(X2-2*hx,Y1+4*hy);
   pnt[4]=Point(X1+6*hx,Y1+4*hy);
   pnt[5]=Point(X1+4*hx,Y1);
   pnt[6]=Point(X1+2*hx,Y1);
   Canvas->Polygon(pnt,6);
   Canvas->Ellipse(X1+hx,Y1+6*hy,X1+3*hx,Y2);
   Canvas->Ellipse(X1+5*hx,Y1+6*hy,X1+7*hx,Y2);
   TPoint pnd[4];
   Canvas->Pen->Color=clBtnFace;
   if (CB!=clBtnFace)
      Canvas->Brush->Color=ColorD;
   pnd[0]=Point(X2-2*hx+1,Y1+5*hy);
   pnd[1]=Point(X2-2*hx+1,Y1+7*hy);
   pnd[2]=Point(X2,Y1+8*hy);
   pnd[3]=Point(X2,Y1+4*hy);
   Canvas->Polygon(pnd,3);
   }

void TMashin::SetD(TColor clr)
   {
   ColorD=clr;
   };
dware вне форума Ответить с цитированием
Старый 05.05.2009, 17:29   #2
dware
Новичок
Джуниор
 
Регистрация: 05.05.2009
Сообщений: 2
По умолчанию

labOOP.h:

Код:
#ifndef labOOPH
#define labOOPH
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <Buttons.hpp>
#include <ExtCtrls.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:	// IDE-managed Components
        TSpeedButton *SpeedButton1;
        TSpeedButton *SpeedButton2;
        TSpeedButton *SpeedButton3;
        TSpeedButton *SpeedButton4;
        TEdit *Edit1;
        TCheckBox *CheckBox1;
        TRadioGroup *RadioGroup1;
        TEdit *Edit2;
        void __fastcall CheckBox1Click(TObject *Sender);
        void __fastcall SpeedButton1Click(TObject *Sender);
        void __fastcall SpeedButton2Click(TObject *Sender);
        void __fastcall SpeedButton3Click(TObject *Sender);
        void __fastcall SpeedButton4Click(TObject *Sender);
        void __fastcall FormResize(TObject *Sender);
private:	// User declarations
public:		// User declarations
        __fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
labOOP.cpp:

Код:
#include <vcl.h>
#pragma hdrstop
#include "labOOP.h"
#include "Unit1.h"
#include "Unit2.h"
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
TRectg *Obj1;
TMashin *Obj2;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
   {
   //Создание динамических объектов классов
   Obj1=new TRectg(10,10,60,70,clYellow,Form1->Canvas);
   Obj2=new TMashin(100,10,240,70,clRed,Form1->Canvas);
   }
//---------------------------------------------------------------------------

void __fastcall TForm1::CheckBox1Click(TObject *Sender)
   {
   //Включение фар
   if (CheckBox1->Checked)
      Obj2->SetD(clWhite);
   else
      Obj2->SetD(clBtnFace);
   Obj2->Move(0,0);
   }

void __fastcall TForm1::FormResize(TObject *Sender)
   {
   //Отображение объектов (прямоугольника и машины)
   Obj1->Move(0,0);
   Obj2->SetD(clBtnFace);
   Obj2->Move(0,0);
   }

void Dvigen (int hx,int hy) //Движение выбранного объекта
   {
   switch(Form1->RadioGroup1->ItemIndex)
      {
      case 0:
         Obj1->Move(hx,hy);
         break;
      case 1:
         Obj2->Move(hx,hy);
         break;
      }
   }

void __fastcall TForm1::SpeedButton1Click(TObject *Sender)
   {
   Dvigen(0,-StrToInt(Edit2->Text));
   }

void __fastcall TForm1::SpeedButton2Click(TObject *Sender)
   {
   Dvigen(-StrToInt(Edit1->Text),0);
   }

void __fastcall TForm1::SpeedButton3Click(TObject *Sender)
   {
   Dvigen(StrToInt(Edit1->Text),0);
   }

void __fastcall TForm1::SpeedButton4Click(TObject *Sender)
   {
   Dvigen(0, StrToInt(Edit2->Text));
   }
dware вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
блок "cont" с права не принимает значение "margin: 10px;" которое описано в body tabikA HTML и CSS 5 24.02.2009 21:50
Под прикрытием "кризиса" наши доблестные "управители" хотят утопить нас в радиоактивных отходах mihali4 Свободное общение 1 17.01.2009 01:43
если пользователь наберет какой-то другой символ не "y" или "n" и нажмет enter, программа проигнорирует skobets Общие вопросы C/C++ 2 03.06.2008 06:51
Excel файл открывается не "до конца" (странички "не показываются" только серое поле) Dorvir Microsoft Office Excel 2 28.03.2008 10:03
Создаю диаграмму "Bar". Подскажите как убрать растояние между "столбами" MAcK Компоненты Delphi 11 24.10.2007 10:49