Thread View: pl.comp.lang.c
3 messages
3 total messages
Started by oo... LUBLIN
Wed, 08 Oct 1997 00:00
wywolanie
Author: oo... LUBLIN
Date: Wed, 08 Oct 1997 00:00
Date: Wed, 08 Oct 1997 00:00
14 lines
604 bytes
604 bytes
Pytanie dotyczy wlasciwie C++, ale moze tu znajde na nie odpowiedz... Zagadka : jak wywolac druga z metod zadeklarowana jako char* f(); const char* f() const; w pewnym obiekcie (wcale nie statycznym) ? Domyslnie kompilator korzysta z pierwszej... Zbigniew Nowacki oo...@telbank.pl
Re: wywolanie
Author: pio... Piotr Auksztulewicz
Date: Wed, 08 Oct 1997 00:00
Date: Wed, 08 Oct 1997 00:00
32 lines
1757 bytes
1757 bytes
LUBLIN (oo...@telbank.pl) wrote: : Pytanie dotyczy wlasciwie C++, ale moze tu znajde na nie odpowiedz... : Zagadka : : jak wywolac druga z metod zadeklarowana jako : char* f(); : const char* f() const; : w pewnym obiekcie (wcale nie statycznym) ? : Domyslnie kompilator korzysta z pierwszej... No w�a�nie. Te� mia�em taki problem. U mnie by�o co� takiego: char & operator [] (int); [1] const char & operator [] (int) const; [2] Intencja jest prosta: nie modyfikuj obiektu, je�li nie musisz. U mnie by�a to klasa String (do operacji na ci�gach znak�w, a jak�e) z implementacj� "copy on write", tzn. przy kopiowaniu string�w nie odbywa�o si� �adne fizyczne kopiowanie, jedynie kopiowa�o si� wska�niki (i zwi�ksza�o licznik odwo�a�). Dopiero w momencie modyfikacji robiona by�a kopia ci�gu. Mia�o to oszcz�dzi� pami�� i czas procesora (program robi� du�o operacji na stringach). Wed�ug tego, co wyczyta�em (Stroustrup), to powinno dzia�a� tak jak my�l�. Niestety Borland tego nie chwyta� (wtedy jeszcze chyba 3.1). Zawsze wo�a� [1]. Czyli ca�a filozofia mi posz�a w choler�. Nie pr�bowa�em innych kompilator�w. -- Piotr Auksztulewicz pio...@zeus.polsl.gliwice.pl Centrum Komputerowe Politechniki �l�skiej, Gliwice, Akademicka 16
Re: wywolanie
Author: jst...
Date: Wed, 08 Oct 1997 00:00
Date: Wed, 08 Oct 1997 00:00
38 lines
1608 bytes
1608 bytes
In article <61gb75$s...@zeus.polsl.gliwice.pl>,
pio...@zeus.polsl.gliwice.pl (Piotr Auksztulewicz) wrote:
>
> LUBLIN (oo...@telbank.pl) wrote:
> : Pytanie dotyczy wlasciwie C++, ale moze tu znajde na nie odpowiedz...
> : Zagadka :
>
> : jak wywolac druga z metod zadeklarowana jako
>
> : char* f();
> : const char* f() const;
>
> : w pewnym obiekcie (wcale nie statycznym) ?
> : Domyslnie kompilator korzysta z pierwszej...
>
> No w�a�nie. Te� mia�em taki problem. U mnie by�o co� takiego:
>
> char & operator [] (int); [1]
> const char & operator [] (int) const; [2]
Mozna tak:
A a; //Nasz klasa z oboma "wersjami" funkcji f.
a.f(); //Zwykle f
((const A)a).f(); //f const;
((const A*)&a)->f(); //Albo tez tak -f const;
oraz tak samo
i=a[2]; //Non-const oper.
i=((const A)a)[2]; //const-oper.
Z powazaniem,
Janusz Stopa
-------------------==== Posted via Deja News ====-----------------------
http://www.dejanews.com/ Search, Read, Post to Usenet
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads