Problem z użyciem klasy

dział ogólny

Problem z użyciem klasy

Nowy postprzez Bert1223 » piątek, 20 listopada 2009, 21:23

Witam, nie wiem czego nie zadeklarowałem, ale mam komunikat:
"[BCC32 Error] Unit1.cpp(37): E2379 Statement missing ;
Full parser context
Unit1.cpp(36): parsing: void _fastcall TForm1::Button1Click(TObject *)"

A kod wygląda tak:
Kod: Zaznacz cały
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------

class Point
{
        private:
                int x, y;

      public:
            Point() : x (0), y (0) { }
            Point(int new_x, int new_y) : x (new_x), y (new_y) { }

            void setX(int set_x) { x = set_x; }
            void setY(int set_y) { y = set_y; }

                int getX() const { return x; }
            int getY() const { return y; }
};

#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
   : TForm(Owner)
{

}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   Point nowy;
}
//---------------------------------------------------------------------------
Avatar użytkownika
Bert1223
Bladawiec
Bladawiec
 
Posty: 45
Dołączył(a): czwartek, 15 października 2009, 02:41
Podziękował : 6
Otrzymał podziękowań: 0
    NieznanyNieznana

Re: Problem z użyciem klasy

Nowy postprzez Cyfrowy Baron » piątek, 20 listopada 2009, 23:17

Nie możesz używać nazwy Point, gdyż taka klasa już istnieje w bibliotekach środowiska C++Builder. Musisz użyć innej nazwy, np:

Kod: Zaznacz cały
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"

class myPoint
{
        private:
                int x, y;

      public:
            myPoint() : x (0), y (0) { }
            myPoint(int new_x, int new_y) : x (new_x), y (new_y) { }

            void setX(int set_x) { x = set_x; }
            void setY(int set_y) { y = set_y; }

            int getX() const { return x; }
            int getY() const { return y; }
};

TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
myPoint nowy;
}
//---------------------------------------------------------------------------

Za ten post autor Cyfrowy Baron otrzymał podziękowanie od:
Bert1223
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4731
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 445
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: Problem z użyciem klasy

Nowy postprzez Bert1223 » sobota, 21 listopada 2009, 00:17

Na przyszłość dwa razy sprawdzę, niestety nie miałem o tym wcześniej pojęcia. Dziękuje.
Avatar użytkownika
Bert1223
Bladawiec
Bladawiec
 
Posty: 45
Dołączył(a): czwartek, 15 października 2009, 02:41
Podziękował : 6
Otrzymał podziękowań: 0
    NieznanyNieznana

Re: Problem z użyciem klasy

Nowy postprzez Cyfrowy Baron » sobota, 21 listopada 2009, 12:04

Jako ciekawostkę dodam, że jeżeli koniecznie chcesz używać istniejącej nazwy klasy, to możesz swoją klasę umieścić w przestrzeni nazw (namespace), np:

Kod: Zaznacz cały
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"

namespace cyfbar
{
   class Point
   {
        private:
                int x, y;

      public:
            Point() : x (0), y (0) { }
            Point(int new_x, int new_y) : x (new_x), y (new_y) { }

            void setX(int set_x) { x = set_x; }
            void setY(int set_y) { y = set_y; }

            int getX() const { return x; }
            int getY() const { return y; }
   };
};

TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
cyfbar::Point nowy;
}
//---------------------------------------------------------------------------
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4731
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 445
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 1 gość

cron