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,...
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...
Niestety tak nie jest, gdyż gromadzisz potem te wskaźniki w kolejnej tablicy... Więck każdy jest użyty. Ale wskaźnik to przecież adres w pamięci i kompilator wie czy w programie się do niego odwołuje czy nie, to po co najpierw ładuje wszystkie zmienne/stałe do pamięci i nie sprawdza czy w ogóle są wykorzystane w programie. Przecież jeżeli wykomentuję...
Ja tam nie widzę żadnych wskaźników. O fajnie że wpadłeś, bo tu trzeba fachowego oka. Chodzi mi o to że obiekt klasy (czyli jego pola i tablica metod wirtualnych) jako lokalny w funkcji, tworzony jest na stosie. Czyli faktycznie przekazując obiekt jako rezultat domyślam się że po prostu niejawnie jest przekazywany jako wskaźnik na obiekt a nie całość...
Z góry dziękuje za wszelką okazaną pomoc, czy mógłby ktoś proszę sprawdzić ten kod? Program ma za zadanie stworzyć tablicę wskaźników. z których każdy wskazuje na obiekt o rozmiarze dokładnie odpowiadającym, rozmiarowi przechowywanego w nich ciągu znaków. W książce jest określone że wskaźnik użyty do przechowywania wartości zwracanej z malloc() powinien...
char (*temp) Gdy mam zwykły wskaźnik np. int *wsk; to przecież nie oznacza że tworzy on miejsce w pamięci dla zmiennej int tylko dla jej adresu. Tak samo char(*temp) Dodano po 10 Intuicyjnie czuje ze moje rozumowanie jest bledne. Szukam tylko gdzie i dlaczego...
Moim skromnym zdaniem staszne hax0rstwo, przypomina trochę techniki użyte w glibie (taka hax0rska biblioteka dająca m.in pseudo-obiektowość w C). Owszem, da się pisać duże projekty obiektowo w gołym C, ale o ile nie wynika to z długiej historii projektu albo ciężkiego charakteru jego szefa (vide: kernel) to szkoda na to czasu. Obecnie jestem zmuszony...
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 <<...
1. Ramka składająca się z nr suwaka i wartości jaką na nim ustawiono. Podrzucę Ci trick, w sumie nie będący trickiem, tylko dobrze zaplanowanym API. Każdy komponent .NET na właściwość Tag , każdemu ze swoich licznych suwaków możesz przypisać Tag = "Hej, ja jestem numer 4" (jak w oddziałach specjalnych, oczywiście tu prostą liczbę) Potem w listenerach...
Bardzo prosto wytłumaczone są wskaźniki w książce "symfonia c++" Grębosza. Ogólnie bardzo dobry podręcznik dla początkujących, warto troche z niego poczytać ;) Wskaźnik to jak sama nazwa wskazuje obiekt który może wskazywać na inny obiekt, a konkretnie przechowuje jego adres np. int x; //nasza zmienna, na ktora ma pokazywac wskaznik int* wsk; //wskaznik...
Zamiast bronić serii błędów raczej uwzględnij uwagi, które dostajesz Ależ ja chwale sobie twoje uwagi, szczególnie że jesteś nielicznym który podjął się konstruktywnej krytyki. Natomiast z powodu założeń, w 30% nie do końca mi pasują. Może jestem niezbyt zdolnym uczniem i potrzebuje czasu. Programując w tym stylu daleko nie zajdziesz. Całkiem możliwe,...
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...
Tu wyrzuca błąd: Unhandled exception at 0x00412045 in program.exe: 0xC0000005: Access violation reading location 0x0000000f. Jakie masz wartości zmiennych indeksujących carNumber i i w momencie wywalenia się programu? Może one wykraczają poza swój zakres w tym momencie?
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ę...
więc jak utworzyć tablice wskaźników?
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);...
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...
obserwowane *tab Zaraz... tablica wskaźników do obiektów? A gdzie masz jakąś instrukcję new? Bo nie widzę... Zrób tablicę obiektów, zamiast wskaźników do obiektów :) A jeszcze lepiej, olej w ogóle tablicę i zró to tak, jak przystało na C++ - sugeruję szablon List albo Vector. Będziesz mógł wtedy posługiwać się wygodnymi iteratorami :)
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; };...
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...
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...
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,...
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]...
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ć...
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:
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)...
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...
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...
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ą.
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...
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.
>W sumie po dodaniu wskaźnika do słownika „nadrzędnego”, odtworzyć >mogę słowo wspinając się aż do napotkania nil’a" Albo: aż znajdziemy wszystkie litery szukanego znaku a będzie pod danym adresem zapisane tłumaczenie. W każdym razie zgodzę się że znacznik jest niepotrzebny. >Zamiast dodawać string z tłumaczeniem dodajmy wskaźnik,...
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.
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...
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...
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.
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.
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...
Próbując zapisać obiekt w taki sposób jak to chciałeś zrobić (i również jak koledzy sugerowali) - nie wyjdzie Ci to co byś chciał. Wskazywana zmienna jest tylko wskaźnikiem do struktury obiektu. Niestety klasa jest skomplikowaną strukturą, która oprócz zmiennych przechowujących wartości może przechowywać również wskaźniki do innych struktur, etc. Zapis...
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.
Musisz sobie zachować parametr przekazany do konstruktora jako właściwość (pole) obiektu. Innej opcji (poza nieprzenośnymi, niskopoziomowymi sztuczkami grzebiącymi w stercie) nie ma. Operatorem sizeof też tutaj nic nie wskórasz, bo on zwraca rozmiar obiektów (typów) znanych w trakcie kompilacji - czyl sizeof(Lista) == 4, bo Lista jest wskaźnikiem a...
dzięki za pomoc krzychoocpp, mam jeszcze jeden problem, chciałbym utworzyć statyczną tablicę stałych obiektów, ale zainicjalizować ją przy pomocy typu wyliczeniowego - jakoś w taki sposób jak w przykładzie poniżej: //--- plik slowo.h --- #ifndef SLOWO_H #define SLOWO_H class slowo { public: enum {znak_a=0, znak_b=1, znak_c=2}; static...
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...
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...
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";...
tablica obiekt dynamiczny tablica obiekt tablica wskaźnik
sonda laguna magnum wtrysk regulator napięcia paneli słonecznych
pilot bramy zasięg odbiornik superreakcyjny
Elastomerowa podkładka sprężyny EPDM/PU – izolacja drgań, montaż, trwałość, McPherson, ORE 4x4 Silnik 1500 W do grubościówki: wybór i montaż