🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

3 total messages Started by oo... LUBLIN Wed, 08 Oct 1997 00:00
wywolanie
#30
Author: oo... LUBLIN
Date: Wed, 08 Oct 1997 00:00
14 lines
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
#31
Author: pio... Piotr Auksztulewicz
Date: Wed, 08 Oct 1997 00:00
32 lines
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
#32
Author: jst...
Date: Wed, 08 Oct 1997 00:00
38 lines
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