Więc nie widzę żadnego sensu używania konstruktora. Równie dobrze wszystko to można zrobić w funkcji inicjalizujacej....
W takim razie jak to umieścić by każdorazowe stworzenie obiektu tej klasy powodowało - tak samo - utworzenie obiektu Klasy1, tylko dla dla danego obiektu klasy M.
Chodzi mi o to, żeby nie próbował przy kilku obiektach klasy M pracować cały czas na tym samym obiekcie klasy Klasa1.
Muszę mieć pewność co do tego, bo potem może być problem ze zdiagnozowaniem problemu. Spory problem.
Gwoli wyjaśnienia, jeżeli coś ma być metodą lub obiektem danej klasy, to musi być zadeklarowane w pliku nagłówkowym w sekcji private lub public i w C++ wyglądałoby to tak:
plik nagłówkowy Unit1.h
KOD cpp: � UKRYJ �
KOD cpp: � POKAŻ �
private: // User declarations
Klasa1 *obiekt1;
plik źródłowy Unit1.cpp
KOD cpp: � UKRYJ �
KOD cpp: � POKAŻ �
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
obiekt1 = new Klasa1();}
Tak zdefiniowany obiekt staje się elementem klasy i może być używany w obrębie całej klasy. Obiekty tworzone lokalnie, tak jak ty zrobiłeś istnieją tylko wewnątrz funkcji w której zostały utworzone. Dodatkowo masz wyciek pamięci, gdyż przed wyjściem z funkcji nie zniszczyłeś obiektu, lecz go porzuciłeś.
Tyle to ja wiem, konstruktor, destruktor, zasięg zmiennych (lub też długość życia zmiennych)...
Tutaj też tworzysz obiekt1. Inna kwestia, że jak tak robiłem to chyba domagał się żeby był statyczny (choć pewien nie jestem co on tam wypisał w błędzie), ale to co tworzysz jest tworzone jednorazowo, a nie unikalnie dla każdego obiektu tej klasy(M)... przynajmniej tak to wcześniej rozumowałem.
Gwoli uzupełnienia. Jeśli tworzysz obiekt w ten sposób, czyli dynamicznie, musisz/powinieneś go usunąć w destruktorze klasy M.
To akurat był kod na szybko, więc o to nie dbałem.
Inna kwestia, że teraz piszę w natywnym c++, więc samo przejście z gcnew na new, zrzuca na mnie obowiązek kontrolowania tego co stworzę (jak to dobrze gdy po Tobie sprzątają), jednak z tym sobie poradzę. Czasami może będzie problem z ustaleniem kiedy tak na prawdę obiektu się pozbyć, z racji, że nie będzie wiadomo czy się jeszcze przyda, więc pewnie większość zostanie w pamięci... no cóż, to już moje zmartwienie ; p