Obiekty A bedą miały zawsze taką samą wielkość. Bo w klasie masz (prawdopodobnie) tylko wskaźnik do tablicy wskaźników obiektów tworzonych operatorem new. Te obiekty są poza klasą. no dokladnie :)... w klasie A tylko wskaznik, z ktorego robi sie pozniej tablica za pomoca new :D... tylko, ze jest to wskaznik do obiektow... a nie wskaznik do tablicy...
To tak: Dajesz argument do konstruktora fstream, a przecież wcześniej ten obiekt stworzyłeś (przed pętlą). Powinieneś mieć więc zrobić coś takiego:
więc jak utworzyć tablice wskaźników?
Chodzi tu o to, że deklaracja tablicy obiektów, a więc zaalokowanie pamięci na te obiekty, jest jednocześnie ich utworzeniem. Ponieważ nie ma żadnych parametrów utworzenia każdego obiektu z osobna, każdy z nich zostanie utworzony za pomocą konstruktora domyślnego. Jeżeli chcesz żeby widać było globalnie tablicę, a stworzenie samych obiektów odkładasz...
Witam, Mam taki problem: Mam sobie klasę car, w której jest 50-elementowa tablica wskaźników na obiekty innej klasy. Jak poprawnie utworzyć w programie tablicę obiektów typu car, aby te wskaźniki (te stablicowane w obiektach klasy car w tablicy) się nie sypały? Bo zauważyłem, że czasami są zupełnie bzdurne i psują mi cały program. Aktualnie ratuję się...
Nie wiem ja Ty tam uważasz, ale zbudowałbym sobie kalendarzyk w oparciu o obiekty ( nie masz tego w kodzie ) a tak chyba najprościej to zrobić Powiedzmy obiekt TRok, wewnątrz lista lub tablica wskaźników do obiektów typu TMiesiac a w miesiacach to juz tylko TDzien który obrazuje konkretna data. Każdy dzień, miesiąc, rok ma własne metody i właściwości...
Do tablicy nie są wpisywane obiekty a wskaźniki do nich. Wskaźniki niestety wskazują śmieci w pamięci, bo im nie przypisałeś żadnej konkretnej wartości, np. tak: [syntax=cpp]Figura( int ile ) { ile_punktow = ile; ile_p = 0; tablica = new Punkt*[ile]; // stworzenie obiektów i przypisanie ich wskaźników do tablicy for( int i = 0; i < ile; i++ ) { tablica[i]...
Proszę o pomoc z sortowaniem tablicy wskaźników na obiekty różnych typów. Tablica działa poprawnie, niestety sortowanie - nie. Przypuszczam, że zamiast skutecznie zamieniać miejscami wskaźniki w tablicy ja sortuję kopie tych wskaźników, ale próby zmian kończą się protestami kompilatora. W tekście zapytania umieszczam problematyczny kod z głównej funkcji,...
Epokowe odkrycie to nie jest, zapewne wszystko co już było do napisania na ten temat zostało już (gdzieś - tylko gdzie :) ) napisane... Dziedziczenie i polimorfizm to podstawy, "hermetyzacja" to kwestia podziału nagłówków na interfejs (publiczny) i implementację (prywatny). Dziedziczenie robi się tak: struct klasaBazowa { int atrybut1; };...
Funkcje wirtualne nie zastępują wskaźników na funkcje - to są wskaźniki na funkcje, czyli technika programowania niekiedy konieczna, której jednak, o ile to możliwe, należy unikać Proceduralne programowanie również jest techniką programowania. Niesie ono również narzut na wykonanie programu. Jednak każdy z nas (chyba każdy:)) godzi się na ten narzut...
Oki to zacznę po kawałku od początku... 1) Tworzę sobie tablicę ruchy, która ma być odpowiednikiem planszy do gry... public static int[][] ruchy = new int[15][]; 2) Do tej tablicy tworzę drugą która jedynie przechowuje indeksy do listy - tablica indeksów wypełniona jest kolejnymi liczbami od 0 do 224... public static...
Nie da rady. Zwróć uwagę, że w zasadzie typ argumentu funkcji nie jest taki sam, jak typ zmiennej globalnej (tablica), a tylko kompatybilny (de-facto wskaźnik na tablicę, chociaż to taka namiastka referencji w C). Jedynie możesz "zenkapsulować" obiekt, tzn. stworzyć globalną strukturę ze wskaźnikiem na tablicę i rozmiarem i coś takiego przekazać do...
Obie metody są dobre. W metodzie A definiujesz wskaźnik na tablicę obiektów typu struktura, a następnie alokujesz pamięć na 10 tego typu obiektów. I to jest metoda prostsza. Metoda B jest bardziej złożona. Nie alokujesz od razu jednej tablicy na wszystkie elementy, ale tworzysz tablicę wskaźników, z których każdy dopiero wskazuje na obiekt typu struktura,...
po takiej deklaracji w sekcji .ssitag lądują wskaźniki do tej tablicy, a nie sama tablica, jak wymusic żeby całosć tam wylądowała? Musiałbyś albo w tablicy umieścić nie napisy ("...") tylko po prostu wskaźniki do tych napisów (osobnych obiektów), z których każdy miałby również ten atrybut. Druga opcja to zrobienie tablicy tablic (obecnie masz tablicę...
Zmiany sa tylko lokalnie w metodzie bo z tego co pamiętam to nie dostaje ona wskaźnika do obiektu a kopie obiektu. Ale to - totalna bzdura, metoda dostaje właśnie wskaźnik do obiektu a nie jego kopię. Racja pomyliłem się. W przypadku obiektów przekazywana jest kopia ale wskaźnika. Dlatego przypisanie nowego obiektu to tego wskaźnika nie powoduje zmiany...
bez gwiazdek char *napis[10] = {"HELLO"}; -> to jakies ufo - wskaznik na tablice ewentualnie tablica wskaznikow [; powinno byc: char napis[]="HELLO"; LCD_WyslijLitery(*napis); -> kolejne ufo (podstawy c), do funkcji powinienes przekazac adres pierwszego elementu, a tak sie sklada, ze nazwa tablicy jest wskaznikiem na pierwszy element, czyli: LCD_WyslijLitery(napis);...
W C++ możesz użyć klasy [url=http://en.cppreference.com/w/cpp/co... albo [url=http://en.cppreference.com/w/cpp/co... [syntax=cpp] #include <vector> // ... std::vector<oceny> wektor_ocen; wektor_ocen.push_back (oceny (1)); wektor_ocen.push_back (oceny (2)); std::cout <<...
Zrób liste obiektów "osoba" opartą na wskaźnikach. Albo "bardziej profejsonalnie" byłoby zrobić obiekt "zarządca_listy", który przechowuje wskaźnik do pierwszego elementu i ma metody typu "dodaj" i "usuń".
obiekcie poza wskaźnikiem next jest tablica. Chodzi mi o sam fragent kodu w procedrze usuwającej. Jeśli jest to tablica statyczna to będzie pamięć zwolniona automatycznie, jeśli masz tam wskaźnik do pamięci alokowanej dynamicznie wewnątrz objektu, to musisz uwzględnić zwalnianie w destruktorze objektu.
Zgodnie z podpunktem 9 p. 6.5.6 oba odejmowane wskaźniki muszą wskazywać na elementy tej samej tablicy lub na element tuż za tablicą. Jeszcze podpunkt 7 mówi, że na potrzeby punktu 6.5.6 wskaźnik do obiektu, który nie jest tablicą, liczy się jak wskaźnik do tablicy elementów danego typu o długości 1. Czy (char*) NULL wskazuje na obiekt? Zgodnie z punktem...
Jestem raczej początkujący w tej dziedzinie z tąd to pytanie. dzięki za odpowiedź. Kombinowałem i wybrałem jeszcze inne rozwiązanie, a mianowicie tablica wskaźników(a tak pisze gdyby ktoś jeszcze kiedyś szukał). Tworze sobie obiekty klasy poleceniem new i tworze do nich wskaźniki znajdujące się w tablicy(vector). Tym sposobem mam wskaźnik do każdego...
Ale ograniczenie składni (a co dopiero brak wskaźnikowania (indexowania)) to już przegięcie. Indeksowanie.. tablice owszem istnieją, ale jako obiekty. Wskaźniki są zastąpione referencjami. Nie ma możliwości dowolnego grzebania po pamięci, dzięki czemu wypada nam cała klasa algorytmów, jak zarządzanie pamięcią (java narzuca swój alokator o którym pisałem)...
Takiego czegoś nie można raczej zrobić: Co miała by robić ta ostatnia instrukcja? Utworzenie tymczasowego obiektu tor i podstawienie (skopiowanie) do tablicy? Skoro potem używa się zestaw jako tablicy to i utworzenie tego jako tablice: [syntax=cpp]tor* zestaw; zestaw=new tor[ilosc];[/syntax] jest potrzebne. Problem polega na tym, że by można było utworzyć...
Bo tab nie jest wskaźnikiem, tylko adresem tablicy. Tablica dwuwymiarowa w C (C++) to nie to samo, co tablica wskaźników do tablic (trzeci przypadek), chociaż odwołanie do elemntu wugląda tak samo (ale nie działa tak samo). W drugim przypadku tab jest adresem tablicy, której elemantami są tablice. Wobec tego *tab jest adresem pierwszej tablicy (wewnątrz...
Coś zrobiłem nie tak? strcat(uzyt,PathFind); strcat(uzyt,"/places.sqlite\0&q... Nie widzę definicji uzyt, ale z wcześniejszych postów wróżę jest to obiekt klasy string, którego brutalnie nadpisałeś ciągiem znaków z ścieżki. Ciekawy jestem czy nie dostałeś ostrzeżeń podczas kompilacji, ponieważ funkcja strcat spodziewa się jako...
Doczytałem, że ma 24, lub 32-bitowe wskaźniki, więc nie będzie problemu, teraz jak zadeklarować tym tablicę? Rozmiar wskaźnika, a rozmiar obiektu (tablicy) to dwie różne sprawy. Nie uzyskasz na AVR obiektów większych niż 32kB. Chcesz większe obiekty to albo musisz je złożyć z mniejszych tak jak próbowałeś na początku, albo zlinkować binarny plik i...
To będzie wyglądało mniej-więcej tak; definiujesz tablicę wskaźników do obiektów: TEdit * tab[ile]; wypełniasz ją: tab[0]=&Edit1; tab[1]=&Edit2; itd A następnie do poszczególnych editów odwołujesz się w ten sposób: tab[0]->Text="adasasdf"; (nie pamiętam w jaki sposób BCB definiuje komponenty, jeżeli tak nie zadziała spróbuj: tab[0]=Edit1; tab[0].Text="adasasdf";...
Witam, a mówiłem żeby się nie męczyć z WinAPI :P No ale jak ktoś lubi hardcore i nieprzespane noce :) Rozwiązanie z tablicą to nie jest dobry pomysł. Kiedy zamkniesz jedno z otwartych okien, w tablicy zostanie HWND nieistniejącego okna. U Ciebie nie działa bo nawet jeśli funkcja CreateWindow wywoła się prawidłowo to zwiększasz li i ShowWindow dostaje...
Zacznijmy od tego, że masz tablicę wskaźników a nie wskaźnik na tablicę. Po co masz zwracać zmodyfikowaną tablicę, działasz na niej za pomocą wskaźnika i ona sama jest zmodyfikowana po wykonaniu operacji.
Wzorce projektowe nie mają poprawiać czytelności, tylko gwarantować niezawodność kodu (IMHO). Polimorfizm jest do zrobienia - w każdej strukturze (klasie) masz wskaźnik do tablicy funkcji (vtable) i zamiast wywoływać funkcje bezpośrednio korzystasz z tablicy wskazywanej przez strukturę. Wygląda to jeszcze gorzej niż brzmi, więc zamiast od razu skreślać...
Rety, przecież to jest C++. A dlaczego nie użyć operatorów new do tworzenia obiektów (i zapisywania wskaźników w tablicy), a delete do ich kasowania? Pozdrawiam.
Delete możesz stosować tylko do obiektów tworzonych przez new i jest to jedyny rozsądny sposób tworzenia pól-tablic w klasie. Jeśli piszesz w Visual Studio 2005 lub nowszym to możesz pisać pod .NET i masz wtedy Garbage Collector (gcnew). Z tego co pamiętam, to pisząc obiektowo w C++ w ogóle wszystkie pola klasy powiny być wskaźnikami i powinny być tworzone...
Podpinasz obiekt pod wskaźnik, a gdy umieścisz go w tablicy to same będą się zliczały. Przepraszam za brak polskich liter ale odroid coś fiksuje.
udaje mi się to jedynie tylko w tej petli w której go uzyskuje (tam gdzie jest token i wsk z jego zawartością ) a nie moge odesłac zawartosci wsk w innej funkcji Jakiej pętli? Chodzi Ci o funkcję "analizuj_dane_id"? Niestety, ale bez znajomości podstaw języka C daleko nie zajdziesz... albo będzie Cię to kosztowało sporo nerwów ;) "wsk" jest wskaźnikiem...
Robisz najprościej tablicę elementów TImage i odwołujesz się jak do normalnego image o nazwie będącej zmienną. Wszak To jest dokłądnie to samo. Czemu wskaźnik? for(int i=0;i<10;i++) ImagesTable[i]=TImage->Create... . . . for(int i=0;i<10;i++) ImagesTable[i]->Free()... (mogę mieszać, nie uzywam...
Jeżeli są tworzone dynamicznie to możesz do nich robić wskaźniki: int wskaznik[10]; for(index = index_Ile; index<10; index++) { *wskaznik[index] = new Button(); // czy jakoś tak (jeżeli namieszałem to przepraszam ale pisze w QT a nie w Builderze) } . Wówczas po kolei w tablicy wskaźnik znajdują się...
Brawo! Podziwiam nakład pracy włożony w tą grę! Zmartwię Cię jednak: gra nie jest napisana w stylu orientowanym obiektowo, o który zapewne Ci chodziło. Przeczą temu stylowi brak enkapsulacji (wszystkie zmienne składowe klas publiczne!) oraz brak efektywnego wykorzystania polimorfizmu. Wskazujesz, co prawda, wskaźnikiem klasy "statek" na obiekty klas...
Z cpp jestem świeży ale jakieś próby gier na tabelce/szachownicy zaliczyłem. Przede wszystkim przestrzeń zorganizuj jako tablicę 9x9. Żadnych oddzielnie istniejących pól. Do wszystkiego tablice identycznie numerowanych wskaźników. Jeśli w OOP to pewnie będzie to tablica obiektów.
zamiast funkcji [syntax=cpp]void move_lewo()[/syntax] musisz miec [syntax=cpp]void move_lewo(void* Args)[/syntax] void* to nie to samo co void. void oznacza brak, void* oznacza wskaznik na cokolwiek. void ma 0 bajtów void* ma rozmiar int (czasami bedzie 4 bajty czasami 8 bajtow) void* to sposób wskazników który nie ogranicza Cie w typach, może on wskazywać...
myślałem o instrukcjach wybory switch(x) w której to argument x byłby poziomem w menu, a w tych switch(x) były by zaś takie same switch(y) gdzie y to byłby poziom podmenu ale niewiem czy takie coś to dobre myślenie. Za dużo niepotrzebnego kodzenia, lepszy wyborem jest pewna struktura opisująca obiekt, bardzo przydatne wskaźniki na funkcje, wskaźniki...
Nie masz zdefiniowanego operatora przypisania ani konstruktora kopiującego dla macierzy. Domyślny operator skopiuje wskaźnik na zaalokowaną dynamicznie tablicę, ale ta tablica zostaje zwolniona w momencie wyjścia z funkcji. W rezultacie zgubisz wskaźnik do tablicy C zaalokowanej z main(), a dostaniesz wskaźnik do zwolnionej pamięci - czyli śmieci.
Jeżeli stosować się do porady kolegi wyżej można by zastosować tablice tylko dwu-wymiarową.Chcąc mieć 3 poziomy wystarczy nam 3x n gdzie n będzie ilością funkcji danego poziomu a ostatni trzeci odnosnikiem do konkretnych funkcji (za pomocą właśnie wskaźnika) Przyznam że pomysł fajny i relatywnie prosty szkoda że sam tak nie robiłem w moim systemie...
Sprawa jest prosta: orientowac sie w asemblerze (wiedziec co w trawie piszczy), znac dobrze C - to jest podstawa. A jak ktos lubi moze sie douczyc roznych wynalazkow. Oczywiście że tak. Chociaż odwróciłbym to. Znać dobrze asembler, i orientować się w C. Prosta sprawa c + asembler = zrobimy wszystko. Jednak bascom (wogóle Basic) naprawdę uczy złych...
Yakhub: wsk->wsp_x //dokładnie taka notacja.. co do definicji wskaźnika samego do siebie można zrobić wskaźnik typu void a potem go rzutować..
Ale czemu wrózką? W Pascalu owszem - nadawało się adres. Ale w Delphi po prostu "przypisuje się" zmienną: [syntax=Delphi]var x: Integer; b: Integer absolute x;[/syntax] Prawilnie - stwórz klasę, która udostępni dwie metody dostępu - przez Integer i przez tablicę. W środku obsłużysz zapis, natomiast na zewnątrz nie będziesz szczególnie widział różnicy....
W C# chyba do wszystkich klas odwołuje się przez referencje, tylko do typów prostych nie. Tak w skrócie. Jeśli w C# tworzysz tablice: Klasa[] x = new Klasa[3]; To stworzysz tablice referencji na Klasy, więc to jest C++'owy odpowiednik tablicy wskaźników. Potem przypisujesz tylko odpowiednim polom referencje na Klasa.
Tak, jak napisałeś, to sie raczej nie kompiluje. Deklaracji klas dokładnie nie analizowałem, ale tablica powinna być tablicą wskaźników. de facto niejawnym wskaźnikiem czyli referencją.
Wskaźnik to nic innego jak zmienna przechowująca adres innej zmiennej (lub tablicy, struktury, obiektu). Stosowana jest po to, o czym pisał frohme.
Heh, trudno tak przez neta tłumaczyć coś, co się normalnie tłumaczy rysująn na kartce :( Choć była tu kiedyś taka gimnazjalistka, co świetnie potrafiła algorytmy rozrysowywać, to by pewnie umiała wytłumaczyć Ci, na czym polegają listy... Generalnie jest to zbiór obiektów połączonych w łańcuszek - każdy wskazuje na następny (ale tylko w jedną stronę)....
Zdaje się że nie za bardzo rozumiem to co napisałeś: W sposobie #2 hlp jest wskaźnikiem na element obiektu typu tablica? tylko jak później wywołać te wartości ? Powiedzmy że w jakiejś innej procedurze wywołuję funkcję : LP(10, 220, 44100); wówczas tworzy się moja tablica. Jak teraz nie wywołując znów LP(....) mam wydostać na przykład 3ci, 4ty oraz 5ty...
tablica wskaźników polonez stm32 tablica wskaźników obiekty dwuwymiarowe
parkside adapter konin internet przebieg samochodu
delphi ds150e programy delphi ds150e programy
Moment dokręcania głowic Ford Mustang 5.0 450 KM Najlepszy wzmacniacz 2.1 - rekomendacje i porady