Problem ze stworzeniem obiektu nowej klasy.

2011-12-05 00:38

Rejestracja: 9 lat temu

Ostatnio: 1 rok temu

0

Witam,

piszę program w Microsof Visual Studio 2010 c++ windows form application.

Mam tak:

główny kod źródłowy w którym jest main.

i w plikach nagłówkowych mam: Form1..h w której ustawiam wszystkie formy ich funkcje itd.

Taki mam main w głównym kodzie źródłowym:


int main(array<System::String ^> ^args)
{
    // Enabling Windows XP visual effects before any controls are created
    Application::EnableVisualStyles();
    Application::SetCompatibleTextRenderingDefault(false); 

    // Create the main window and run it
    Application::Run(gcnew Form1());

    return 0;
}

czyli odpalam okno formy.

Teraz chciałbym utworzyć klasę, która zarządzała by pewnymi danymi, które wykorzystywane byłyby przez różne formy.
np. klasa poda pewne dane , które muszą się wyświetlić w polu tekstowym formy.

Więc klikam na projekt i dodaję nową klasę, tworzy się.

i teraz chciałbym stworzyć obiekt tej klasy w kodzie odpowiedzialnym za formy więc w Form1.h, jednak nie mogę tego zrobić nie wiem dlaczego. Jak mogę to zrobić?

gdy robię standardowo:

odpowiednia_klasa *ob1 = new odpowiednia_klasa();

to wyskakuje, że Odpowiednia_klasa nie jest zadeklarowana!

dodam, że w main w głównym pliku żródłowym tez nie mogę stworzyć obiektu tej klasy.

Proszę o pomoc.

Pozostało 580 znaków

Rev
2011-12-05 00:47
Rev
Moderator

Rejestracja: 13 lat temu

Ostatnio: 5 godzin temu

0

Język, w którym piszesz to nie C++, a C++/CLI. To nie jest to samo. Warto wiedzieć gdzie leżą różnice i jakie są podobieństwa. A dopiero potem zabierać się do pisania programów.
Tak na oko, brakuje dołączenia odpowiednich nagłówków, czyli wychodzi na to, że C++ też nie znasz.


edytowany 1x, ostatnio: Rev, 2011-12-05 00:48

Pozostało 580 znaków

2011-12-05 01:00

Rejestracja: 9 lat temu

Ostatnio: 1 rok temu

0

a jak bym chciał napisać program z pomocą biblioteki qt to tez bym pisał jakąś odmianą c++?
pewnie głupie pytanie ale prosze o odpowiedź.

Pozostało 580 znaków

Rev
2011-12-05 01:05
Rev
Moderator

Rejestracja: 13 lat temu

Ostatnio: 5 godzin temu

0

Nie, aczkolwiek w QT jest specjalny preprocesor. Mimo tego, to dalej C++.


Pozostało 580 znaków

2011-12-05 07:34

Rejestracja: 11 lat temu

Ostatnio: 5 lat temu

0

Mozna stworzyc w C++/CLI obiekt tak jak w normalnym C++ tylko trzeba pamietac, zeby ten obiekt usunac, bo obiekt tworzony za pomoca gcnew nie musi byc usuwany ze sterty, bo sie sam usunie.
Zauwaz, ze twoja klasa jest umieszczona w przestrzeni nazw, wiec przy tworzeniu obiektu musisz sie do niej odwolac, bo inaczej kompilator nie wie co to za klasa, dla niego to calkiem inna definicja, wiec:

przestrzen_nazw::klasa* obiekt = new przestrzen_nazw::klasa;
// lub 
przestrzen_nazw::klasa^ obiekt = new przestrzen_nazw::klasa;

Gdy się nie wie, co się robi, to dzieją się takie rzeczy, że się nie wie, co się dzieje ;-)

Pozostało 580 znaków

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0