Skocz do zawartości
Zamknięcie Forum PC LAB

Szanowny Użytkowniku,

Informujemy, że za 30 dni tj. 30 listopada 2024 r. serwis internetowy Forum PC LAB zostanie zamknięty.

Administrator Serwisu Forum PC LAB - Ringier Axel Springer Polska sp. z o.o. z siedzibą w Warszawie: wypowiada całość usług Serwisu Forum PC LAB z zachowaniem miesięcznego okresu wypowiedzenia.

Administrator Serwisu Forum PC LAB informuje, że:

  1. Z dniem 29 listopada 2024 r. zakończy się świadczenie wszystkich usług Serwisu Forum PC LAB. Ważną przyczyną uzasadniającą wypowiedzenie jest zamknięcie Serwisu Forum PC LAB
  2. Dotychczas zamowione przez Użytkownika usługi Serwisu Forum PC LAB będą świadczone w okresie wypowiedzenia tj. do dnia 29 listopada 2024 r.
  3. Po ogłoszeniu zamknięcia Serwisu Forum od dnia 30 października 2024 r. zakładanie nowych kont w serwisie Forum PC LAB nie będzie możliwe
  4. Wraz z zamknięciem Serwisu Forum PC LAB, tj. dnia 29 listopada 2024 r. nie będzie już dostępny katalog treści Forum PC LAB. Do tego czasu Użytkownicy Forum PC LAB mają dostęp do swoich treści w zakładce "Profil", gdzie mają możliwość ich skopiowania lub archiwizowania w formie screenshotów.
  5. Administrator danych osobowych Użytkowników - Ringier Axel Springer Polska sp. z o.o. z siedzibą w Warszawie zapewnia realizację praw podmiotów danych osobowych przez cały okres świadczenia usług Serwisu Forum PC LAB. Szczegółowe informacje znajdziesz w Polityce Prywatności

Administrator informuje, iż wraz z zamknięciem Serwisu Forum PC LAB, dane osobowe Użytkowników Serwisu Forum PC LAB zostaną trwale usunięte ze względu na brak podstawy ich dalszego przetwarzania. Proces trwałego usuwania danych z kopii zapasowych może przekroczyć termin zamknięcia Forum PC LAB o kilka miesięcy. Wyjątek może stanowić przetwarzanie danych użytkownika do czasu zakończenia toczących się postepowań.

Temat został przeniesiony do archiwum

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

revcorey

[C++]iteratory,lista dwukierunkowa,pasja c++

Rekomendowane odpowiedzi

Na podstawie książki pasja c++ napisałem liste dwukierunkową i iterator

Niestety google nic nie mówi mi na ten temat :(

Ale do rzeczy gdzie lezy błąd

oto fragment kalsy iteratorL w której leży błąd

template<class typobj>
class iteratorL
{
friend class lista<typobj>;

protected:
lista<typobj>::wenzel *wybranyW;  //tu mi wywala błąd
//dalsze instrukcje

gcc wypluwa takie coś

type 'lista<typobj>' is not derived from type 'iterator<typobj>'

i jeszcze jeden do tej samej lini

expected ';' before '*' token

 

Wyobraźcie sobie moje żdziwienie kiedy zajżałem do pasji a tam dość podobny kod. A i oczywiście jest deklaracja przyjażni w klasie lista

edit:

Dodam jeszcze że w klasie lista jest także struktura nazwana wenzel

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

rozumię, że klasa/szablon klasy lista<typobj>::wenzel jest klasą wewnętrzną w lista<typobj>. Czy ma ona jakiś parametr typowy?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

klasa lista oczywiście jest szablonem a struktura wenzel jest zagnieżdżona a co do parametrów najlepiej widoczne jest to w tym fragmencie kodu

template<class typobj>
class lista
{

struct wenzel 
{
	typobj * wskazywany; 
//dalej instrukcje

A i jak się nieznajdzie rozwiązanie nie ma się czym przejmować wystarczy mi że rozumiem jak listy i iteratory działają a że jest jakiś tam dziwny problem to trudno :)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

lista::wezel * wskazywany;

sie u mnie kompiluje, aczkolwiem przyznam, ze nie jestem na 100% pewny, czy tak jest ok ;-)

 

pozdro

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
sie u mnie kompiluje, aczkolwiem przyznam, ze nie jestem na 100% pewny, czy tak jest ok smilies/wink.gif

Najpierw próbowałem na g++ pó·źniej na windzie pod ms vs 2005 i to samo zarzucam jeszcze pełnym źródłem

http://wklej.org/id/af987eadd8

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

@Arkady Dzięki. Sam też dopisywałem typename tylko ze ja robiłem z tym taki cyrk

lista<typename typobj>::wenzel *wybranyW;

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Słowo kluczowe typename wprowadzono do standardu właśnie dla takich sytuacji.

Generalnie, w przypadku napotkania konstrukcji T::typ* x albo A<T>::typ* x,

mamy do czynienia z niejednoznacznością składniową. To można traktować jako

deklarację zmiennej, ale także jako np. mnożenie składowej statycznej

w klasie T/A<T> przez x. Typename wymusza odpowiednią interpretację.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Aha rozumiem dzieki. Właśnie poprawiam reszte błędów które wykryłem przy próbie wstawiania itp ale mi już szybko idzie dzięki

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...