069 TIF

069 TIF



*ppch = &ch; //błąd **ppch = ch;

}

void TestConstConst3( char const**ppch)

{

char ch;

*ppch = &ch;

**ppch = ch; //błąd

}

Pamiętajmy, że deklarację const stosuje się od lewej do prawej. W funkcji TestConstConstl lewa deklaracja const odnosi się do typu char *. Prawa deklaracja const odnosi się do char **. A zatem w funkcji TestConstConstl ani wskaźnik, ani wskazywany typ znakowy nie mogą się zmienić. Oba przypisania w kodzie wygenerują błędy.

W funkcji TestConstConst2 deklaracja const odnosi się do typu char *. Dlatego też wskazywana zawartość nie może się zmienić. Ale wskaźnik do zawartości może się zmienić. Więc pierwsze przypisanie generuje błąd, ale drugie nie.

W funkcji TestConstConst3 stały jest typ char **. A więc wskazywana zawartość może się zmienić, ale sam wskaźnik nie. Dlatego też pierwsze przypisanie jest poprawne, a drugie wywołuje błąd składniowy.

Przykład: Test Const Const 10. TestConstConst2() oraz TestConstConst3() w pliku misc.cpp

Inteligentne wskaźniki

unikanie strat pamięci

Kod źródłowy

template <class T> class IntelWskPodst

{

private;

lntelWskPodst<T>&operator=(lntelWskPodst<T>&iwp)

{

return *this;

}

protected:

T *m_pt; public:

lntelWskPodst(T *pt=NULL) : m_pt(pt)


Wyszukiwarka

Podobne podstrony:
133 TIF class C3 : public C1{ public: void Metoda3();}; class C4 : public C3, public C2{}; void
133 TIF class C3 : public C1{ public: void Metoda3();}; class C4 : public C3, public C2{}; void
Tablica jest wskaźnikiem Kod źródłowy void ProcC(char *pchBuf) { } void ProcD() { char *pch;
096 TIF DWORD fWyn4:1; DWORD dwNieużyw:23; }; #ifdef _DEBUG char
DSC00363 (16) Wpisywanie łańcuchów do tablic: Oto inny sposób wykonania kopiowania łańcuchów: void s
{ public class Hanol void przenieś(char a, char b, char c, int n){ if
ANSI C 6 1 ELEMENTARZ /* copy: przepisz from do to; */ /* to musi być dostatecznie duże */ void co
ANSI C 5 5 WSKAŹNIKI I TABLICE /* swap: zamień miejscami v[i] i v[j] */ void swap(char *v[], int i
chlorofil tif CH H R / C H3C—u i J,N „ //     /    W HC
iNJERGETYK/A C NEReiezNjy ch Błąd graniczny miernika cyfrowego Wartość wyświetlana błąd
skanuj0013 (83) & “p s e s p 3 8 B. ec u a ^Jf 11 -gJII Łg&O

więcej podobnych podstron