🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.c
31 messages
31 total messages Started by sektor Fri, 13 Feb 1998 15:48
Kilka pytan do C++
#1468
Author: sektor
Date: Fri, 13 Feb 1998 15:48
58 lines
3021 bytes
Ostatnio przypomnialo mi sie kilka nietrywialnych pytan do C++.

1. Domyslny operator przypisania, jaki istnieje w kazdej klasie, powoduje
przepisanie calej struktury "pole po polu". Jezeli struktura taka zawiera
pola typow innych, niz scisle, nie zaleca sie wtedy tego stosowac, lecz
nalezy zdefiniowac wlasny operator przypisania. Moje pytanie dotyczy tego
standardowego operatora przypisania: Czy ow operator powoduje skopiowanie
obszaru pamieci jednej struktury w drugi, czy tez korzysta z operatorow
przypisania obowiazujacego dla kazdego z typow ? Jezeli np. mam cos takiego:

class Char
{
	String	name;
	String	title;
	int		hp;
	... (itd., powiedzmy reszta pol jest typow scislych)
};

To jezeli dam:
Char ch;
...
Char vch = ch;

To czy zawartosc pol name i title zostanie skopiowana, czy tez wywola sie
operator przypisania z klasy String ? Gdyby bylo to zwykle kopiowanie, to
wtedy pole name.t z vch przyjeloby wartosc tego samego wskaznika (podwojne
odniesienie), a skutki destrukcji takiego obiektu chyba wszyscy znamy.

Pytam dlatego, ze wyjasnienia, na jakie sie natknalem w literaturze, wyjasnialy
skutki uzywania tego, gdy mamy pola wskaznikowe, a przypisanie wskaznika
wyglada... jak wyglada. Nie bylo jednak jasno okreslone, czy korzysta sie
jawnie z operatora przypisania, czy tez normalnie sie "hurtowo" kopiuje
(niektore komputery maja dodatkowe uklady do kopiowania obszarow pamieci,
tak tez nie wiadomo, czy kompilatory z tego czasem nie korzystaja).


Druga rzecz, jaka juz od dluzszego czasu probuje zrozumiec:
Do czego sluza operatory .* i ->* ? W literaturze sa wyroznione, jako
osobne operatory (a nie zlepek . i *, czy -> i *). Z tego, co widzialem,
wprowadzone zostaly dopiero w C++. Jezeli odwoluje sie do pola obiektu
to jest albo obiekt: ob.pole, albo wskaznik pob->pole, jezeli wyluskujemy
obiekt ze wskaznika, ktory jest polem, to jest *ob.pol (i odpowiednio
strzalka). Jakie jest wiec zastosowanie dla operatorow .* i ->* ?


Aha i jeszcze jedno. Czy da sie przeciazac wszystkie jednoparametrowe
operatory postfixowo (oczywiscie te, ktore sie nie dubluja z druargumentowymi)?
Czy tylko ++ i -- ?


Bede dzwieczny za odpowiedzi.


-- 
.---.     .   . - Michal Malecki <mmalecki@technologist.com>/The things that
\___  ,-. | , |- ,-. ,-  mUd: zly.mud.org.pl 4000.         /can't destroy you
    \ |-' |<  |  | | |   uRl: www.kis.p.lodz.pl/~sektor   /make you
`---' `-' ' ` `' `-' '   pGp: sektor@zly.kis.p.lodz.pl   /stronger...
Re: Kilka pytan do C++
#1469
Author: Maciej MOCHOL
Date: Fri, 13 Feb 1998 18:47
40 lines
2098 bytes
On 13 Feb 1998 sektor@mud.org.pl wrote:

> To jezeli dam:
> Char ch;
> ...
> Char vch = ch;
> 
> To czy zawartosc pol name i title zostanie skopiowana, czy tez wywola sie
> operator przypisania z klasy String ? Gdyby bylo to zwykle kopiowanie, to

Sektorze, dziwne nieco to Twoje pytanie... Operator kopiowania jest jak
konstruktor domyslny i copy, po prostu kompilator tworzy predefiniowany,
jesli nie ma definicji. Domyslny kopiuje po chamsku (binarnie) zawartosc
pol obiektu. Wiec jak masz tam jakies wskazniki, to dwa rozne obiekty
beda wskazywaly na ten sam obszar pamieci. To jak sobie go przeciazysz
to Twoja sprawa. Mozesz tam nawet printf umiescic.

> Do czego sluza operatory .* i ->* ? W literaturze sa wyroznione, jako
> osobne operatory (a nie zlepek . i *, czy -> i *). Z tego, co widzialem,

Do tego zeby sobie stosowac wskazniki na metody. 

> Aha i jeszcze jedno. Czy da sie przeciazac wszystkie jednoparametrowe
> operatory postfixowo (oczywiscie te, ktore sie nie dubluja z druargumentowymi)?
> Czy tylko ++ i -- ?

Postfixowo ? Nie kumam... W C++ mozna przeciazyc tylko te operatory
ktore sa uzywane (z wyjatkiem kilku). Nie ma chyba innych niz --i, ++i.
Reszte sie stosuje tak samo.

pozdrawiam
c.

PS. Polecam Stroustrupa, lub jakas inna klasyke.

--
Codematic                            
 code@beta.cku.pwr.wroc.pl.strasznie.mi.sie.podobaja
 mmochol@elka.pw.edu.pl.te.smieci.na.koncu.adresu.email
 http://home.elka.pw.edu.pl.i.www.rowniez/~mmochol
Re: Kilka pytan do C++
#1470
Author: Witold Przygoda
Date: Fri, 13 Feb 1998 19:28
86 lines
3129 bytes
sektor@mud.org.pl wrote:

>1. Domyslny operator przypisania, jaki istnieje w kazdej klasie, powoduje
>przepisanie calej struktury "pole po polu". Jezeli struktura taka zawiera

Najlepszym sposobem na nauke jest napisac sobie samemu przykladzik
i zobaczyc jak to chodzi. Poniewaz jednak nie napisales sobie
przykladziku, wiec napisalem go dla ciebie - skopiuj sobie kod ponizej
i skompiluj (g++ nazwa.cc -o runme    ...czy co tam uzywasz :)
A potem popatrz co sie dzieje...

---------------------------------------------------

#include <iostream.h>

class maKota {
  public:
 int kotali;
 maKota& operator=(const maKota& source) {
  if (this == &source) return *this;
  cout << "Uwaga! Ala klonuje kota numer " << source.kotali 
          << "!!!\n";
  kotali = source.kotali;
  return *this;
 }
};


class zwierzak {
  public:
 int ala;
 maKota kot;

// ta klasa nie ma zdefiniowanego operatora= ale ma
// pole typu maKota
};


void main() {

 cout << "*** Krotki kurs klonowania kotow ***\n";
 zwierzak kotekBialy,kotekCzarny;

 kotekBialy.ala = 1;
 kotekBialy.kot.kotali = 11;
 cout << "Oto bialy kotek Ali, a jego dane to: "
      << kotekBialy.ala << ", " << kotekBialy.kot.kotali << "\n";

 kotekCzarny = kotekBialy;

 cout << "...teraz kotek czarny ma dane: "
      << kotekCzarny.ala << ", " << kotekCzarny.kot.kotali << "\n";
}

-----------------------------------------------------------

>strzalka). Jakie jest wiec zastosowanie dla operatorow .* i ->* ?


Operatory, ktore moga byc przeladowane  w c++ to

+  -  *  /  %  &  ^  |  ~  !  =  <  >  +=  -=  *=  /=  %= 
^=  &=  |=  <<  >>  >>=  <<=  ==  !=  <=  >=  &&  ||  ++  --
,  ->*  ->  new  delete  ()  []

Jesli cie dobrze rozumiem to chodzi ci o operator ->*  
Ma on zastosowanie we wskaznikach do skladowych obiektow
(np. chcesz pokazywac wskaznikiem na obiekty znajdujace sie
w twojej klasie) innymi slowy jesli  mojaDana to obiekt twojej jakiejs
klasy, to mozesz albo mojaDana.*wskaznik_na_skladnik
albo, majac wskaznik na mojaDana  to samo przy uzyciu
powyzszego:
wskazMojaDana->*wskaznik_na_skladnik

Ja sie to je, mozesz sobie poczytac np. w ksiazce J.Grebosza
Symfonia C++ tom II rozdzial 16.Wskaznik do skladnikow klasy
albo w dowolnej ksiazce na temat j.w.

>Aha i jeszcze jedno. Czy da sie przeciazac wszystkie jednoparametrowe
>operatory postfixowo (oczywiscie te, ktore sie nie dubluja z druargumentowymi)?
>Czy tylko ++ i -- ?

Jak wyzej, rozdzial. 18.


pozdr.wp
Re: Kilka pytan do C++
#1471
Author: Wojtek Surowka
Date: Mon, 16 Feb 1998 11:10
21 lines
1324 bytes
sektor@mud.org.pl wrote in message <34e46b5e.0@news.tpnet.pl>...
>To czy zawartosc pol name i title zostanie skopiowana, czy tez wywola sie
>operator przypisania z klasy String ?

Zostanie wywolany operator przypisania z klasy String. Operator przypisania
generowany automatycznie wywoluje operatory przypisania dla wszystkich pol
(oczywiscie moze to zostac w koncu zoptymalizowane do jednego memcpy, ale to
juz optymalizacja).

>Aha i jeszcze jedno. Czy da sie przeciazac wszystkie jednoparametrowe
>operatory postfixowo (oczywiscie te, ktore sie nie dubluja z
druargumentowymi)?
>Czy tylko ++ i -- ?


Tylko ++ i --. Ogolna zasada: przeciazanie operatorow nie zmienia skladni
jezyka.

Pozdrowienia i milego C++owania.

WS
Re: Kilka pytan do C++
#1473
Author: Norbert Cegielka
Date: Tue, 17 Feb 1998 13:48
14 lines
1224 bytes
sektor@mud.org.pl wrote:
> Ostatnio przypomnialo mi sie kilka nietrywialnych pytan do C++.

Poglądy i opinie wyrażane przez Pana Michała Małeckiego są jego prywatnymi
i w żadnym stopniu nie reprezentują użytkowników domeny kis.p.lodz.pl.
My niżej podpisani adminstratorzy tej domeny stanowczo odcinamy się 
od teorii wygłaszanych przez Pana Michała Małeckiego, w tym poście,
w poprzednich i wszelkich następnych, w tej grupie dyskusyjnej jak 
i w inych. Nie odpowiadamy za szkody intelektualne i ew. materialne
powstałe w wyniku działalności wyżej wymienionego użytkownika.

					Norbert Cegiełka
					Tomasz Jóźwiak
					Maciej Leśniewski
Re: Kilka pytan do C++
#1474
Author: Karpierz
Date: Tue, 17 Feb 1998 14:19
22 lines
1590 bytes
Norbert Cegielka <cegla@kis.p.lodz.pl> napisal
[...]
> Poglądy i opinie wyrażane przez Pana Michała Małeckiego są jego 
> prywatnymi i w żadnym stopniu nie reprezentują użytkowników 
> domeny kis.p.lodz.pl. My niżej podpisani adminstratorzy tej domeny
> stanowczo odcinamy się od teorii wygłaszanych przez Pana 
> Michała Małeckiego, w tym poście, w poprzednich i wszelkich 
> następnych, w tej grupie dyskusyjnej jak i w inych. Nie 
> odpowiadamy za szkody intelektualne i ew. materialne
                                                          =============
> powstałe w wyniku działalności wyżej wymienionego użytkownika.
> 
> 					Norbert Cegiełka
> 					Tomasz Jóźwiak
> 					Maciej Leśniewski

No dobrze... Intelektualne szkody jakos przezyje, ale kto 
mi zaplaci za kilka rozwalonych w drobny mak klawiatur i
monitorow (15'' !) do czego w/w MM w walny sposob sie 
przyczynil swoimi listami ? :)

A.K.
Re: Kilka pytan do C++
#1472
Author: Michal Malceki
Date: Mon, 23 Feb 1998 13:25
33 lines
2071 bytes
W poprzednim odcinku Wojtek Surowka <WojtekS@aldec.katowice.pl> naskrobal:
: sektor@mud.org.pl wrote in message <34e46b5e.0@news.tpnet.pl>...
:>To czy zawartosc pol name i title zostanie skopiowana, czy tez wywola sie
:>operator przypisania z klasy String ?

: Zostanie wywolany operator przypisania z klasy String. Operator przypisania
: generowany automatycznie wywoluje operatory przypisania dla wszystkich pol
: (oczywiscie moze to zostac w koncu zoptymalizowane do jednego memcpy, ale to
: juz optymalizacja).

Tak wlasnie podejrzewalem! Tylko - z tego, co zauwazylem - nikt poza toba
nie odpowiedzial w ten sposob. Jedyny babol z wywolywaniem operatorow jest
w 'switch' - fajnie, gdyby korzystal z operatora == (ale moze kiedys sie
to zmieni).

:>Aha i jeszcze jedno. Czy da sie przeciazac wszystkie jednoparametrowe
:>operatory postfixowo (oczywiscie te, ktore sie nie dubluja z
: druargumentowymi)?
:>Czy tylko ++ i -- ?

: Tylko ++ i --. Ogolna zasada: przeciazanie operatorow nie zmienia skladni
: jezyka.

Ach! Sluszna uwaga. Tak wlasnie myslalem, ale wolalem sie upewnic.

Jeszcze raz dziekuje za odpowiedzi i ... 'nawzajem' :-)


-- 
.---.     .   . - Michal Malecki <mmalecki@technologist.com>/The things that
\___  ,-. | , |- ,-. ,-  mUd: zly.mud.org.pl 4000.         /can't destroy you
    \ |-' |<  |  | | |   uRl: www.kis.p.lodz.pl/~sektor   /make you
`---' `-' ' ` `' `-' '   pGp: sektor@zly.kis.p.lodz.pl   /stronger...
Re: Kilka pytan do C++
#1476
Author: Michal Malceki
Date: Mon, 23 Feb 1998 13:27
21 lines
1678 bytes
W poprzednim odcinku Norbert Cegielka <cegla@kis.p.lodz.pl> naskrobal:

: Poglądy i opinie wyrażane przez Pana Michała Małeckiego są jego prywatnymi
: i w żadnym stopniu nie reprezentują użytkowników domeny kis.p.lodz.pl.
Nigdy nikt nie twierdzil inaczej.

: My niżej podpisani adminstratorzy tej domeny stanowczo odcinamy się 
: od teorii wygłaszanych przez Pana Michała Małeckiego, w tym poście,
: w poprzednich i wszelkich następnych, w tej grupie dyskusyjnej jak 
: i w inych. Nie odpowiadamy za szkody intelektualne i ew. materialne
: powstałe w wyniku działalności wyżej wymienionego użytkownika.

Podobnie nie odpowiadam za to, co moglbym przez pomylke zostawic na dlugo
bez odpowiedzi. Zycze moim administratorom dobrego uzytkownika.


-- 
.---.     .   . - Michal Malecki <mmalecki@technologist.com>/The things that
\___  ,-. | , |- ,-. ,-  mUd: zly.mud.org.pl 4000.         /can't destroy you
    \ |-' |<  |  | | |   uRl: www.kis.p.lodz.pl/~sektor   /make you
`---' `-' ' ` `' `-' '   pGp: sektor@zly.kis.p.lodz.pl   /stronger...
Re: Kilka pytan do C++
#1477
Author: Michal Malceki
Date: Mon, 23 Feb 1998 13:29
11 lines
1032 bytes
W poprzednim odcinku sektor@mud.org.pl naskrobal, co naskrobal.

Mam za to jeszcze jedno pytanie. Czy metoda moze usunac obiekt (delete) ?
Tzn., czy jej wolno.


-- 
.---.     .   . - Michal Malecki <mmalecki@technologist.com>/The things that
\___  ,-. | , |- ,-. ,-  mUd: zly.mud.org.pl 4000.         /can't destroy you
    \ |-' |<  |  | | |   uRl: www.kis.p.lodz.pl/~sektor   /make you
`---' `-' ' ` `' `-' '   pGp: sektor@zly.kis.p.lodz.pl   /stronger...
Re: Kilka pytan do C++
#1475
Author: Piotr Piatkowski
Date: Mon, 23 Feb 1998 14:34
12 lines
1219 bytes
Michal Malceki <sektor@mud.org.pl> wrote:
: W poprzednim odcinku sektor@mud.org.pl naskrobal, co naskrobal.

: Mam za to jeszcze jedno pytanie. Czy metoda moze usunac obiekt (delete) ?
: Tzn., czy jej wolno.

Nie wydaje mi się żeby były ku temu jakieś przeciwskazania, poza tym 
żeby uważać - od momentu takiego usunięcia nie wolno użyć this, czyli
żadnej zmiennej składowej, ani żadnej innej metody niestatycznej.

-- 
Piotr Piątkowski, Uczelniane Centrum Informatyki, AGH Krakow, POLAND
Re: Kilka pytan do C++
#1479
Author: Michal Malceki
Date: Mon, 23 Feb 1998 16:06
22 lines
1693 bytes
W poprzednim odcinku Piotr Piatkowski <kompas@galaxy.uci.agh.edu.pl> naskrobal:
: Michal Malceki <sektor@mud.org.pl> wrote:
: : W poprzednim odcinku sektor@mud.org.pl naskrobal, co naskrobal.

: : Mam za to jeszcze jedno pytanie. Czy metoda moze usunac obiekt (delete) ?
: : Tzn., czy jej wolno.

: Nie wydaje mi się żeby były ku temu jakieś przeciwskazania, poza tym 
: żeby uważać - od momentu takiego usunięcia nie wolno użyć this, czyli
: żadnej zmiennej składowej, ani żadnej innej metody niestatycznej.

Dzieki, ale jeszcze poprosze o wyjasnienie: czy metoda, ktora takie cos robi
musi byc statyczna, czy tez po instrukcji delete nie moze byc wywolan
niestatycznych ? Metoda, w ktorej chce to zastosowac, miala byc wirtualna.



-- 
.---.     .   . - Michal Malecki <mmalecki@technologist.com>/The things that
\___  ,-. | , |- ,-. ,-  mUd: zly.mud.org.pl 4000.         /can't destroy you
    \ |-' |<  |  | | |   uRl: www.kis.p.lodz.pl/~sektor   /make you
`---' `-' ' ` `' `-' '   pGp: sektor@zly.kis.p.lodz.pl   /stronger...
Re: Kilka pytan do C++
#1553
Author: Maciej MOCHOL
Date: Mon, 23 Feb 1998 16:37
19 lines
1473 bytes
On 23 Feb 1998, Piotr Piatkowski wrote:

> Nie wydaje mi się żeby były ku temu jakieś przeciwskazania, poza tym 
> żeby uważać - od momentu takiego usunięcia nie wolno użyć this, czyli
> żadnej zmiennej składowej, ani żadnej innej metody niestatycznej.

Moim zdaniem nie wolno. Mozna oczywiscie usunac (delete) jakis inny 
obiekt, ale nie swoj wlasny. Mysle ze to by bylo bez sensu, bo wtedy
wywolywany jest destruktor, a jesli wywolanie bylo z metody
wirtualnej ?

Inna sprawa, ze takie cos w wiekszosci implementacji pojdzie, pod 
warunkami takimi jak powiedzial przedmowca.

--
Codematic                            
 code@beta.cku.pwr.wroc.pl.strasznie.mi.sie.podobaja
 mmochol@elka.pw.edu.pl.te.smieci.na.koncu.adresu.email
 http://home.elka.pw.edu.pl.i.www.rowniez/~mmochol
Re: Kilka pytan do C++
#1551
Author: Piotr Piatkowski
Date: Tue, 24 Feb 1998 11:44
18 lines
1589 bytes
Maciej MOCHOL <mmochol@elka.pw.edu.pl> wrote:
: On 23 Feb 1998, Piotr Piatkowski wrote:

:> Nie wydaje mi się żeby były ku temu jakieś przeciwskazania, poza tym 
:> żeby uważać - od momentu takiego usunięcia nie wolno użyć this, czyli
:> żadnej zmiennej składowej, ani żadnej innej metody niestatycznej.

: Moim zdaniem nie wolno. Mozna oczywiscie usunac (delete) jakis inny 
: obiekt, ale nie swoj wlasny. Mysle ze to by bylo bez sensu, bo wtedy
: wywolywany jest destruktor, a jesli wywolanie bylo z metody
: wirtualnej ?

No dobrze, ale destruktor jest wołany *przed* zwolnieniem pamięci, 
więc w czym problem? I nie rozumiem na czym polega problem przy 
metodzie wirtualnej?

-- 
Piotr Piątkowski, Uczelniane Centrum Informatyki, AGH Krakow, POLAND
Re: Kilka pytan do C++
#1478
Author: Piotr Piatkowski
Date: Tue, 24 Feb 1998 11:46
24 lines
1947 bytes
Michal Malceki <sektor@mud.org.pl> wrote:
: W poprzednim odcinku Piotr Piatkowski <kompas@galaxy.uci.agh.edu.pl> naskrobal:
: : Michal Malceki <sektor@mud.org.pl> wrote:
: : : W poprzednim odcinku sektor@mud.org.pl naskrobal, co naskrobal.

: : : Mam za to jeszcze jedno pytanie. Czy metoda moze usunac obiekt (delete) ?
: : : Tzn., czy jej wolno.

: : Nie wydaje mi się żeby były ku temu jakieś przeciwskazania, poza tym 
: : żeby uważać - od momentu takiego usunięcia nie wolno użyć this, czyli
: : żadnej zmiennej składowej, ani żadnej innej metody niestatycznej.

: Dzieki, ale jeszcze poprosze o wyjasnienie: czy metoda, ktora takie cos robi
: musi byc statyczna, czy tez po instrukcji delete nie moze byc wywolan
: niestatycznych ? Metoda, w ktorej chce to zastosowac, miala byc wirtualna.

Oczywiście to co pisałem odnosiło się do metody dynamicznej. W 
metodzie statycznej w ogóle nie ma takiego problemu bo nie ma 
wskaźnika this - więc metoda statyczna nie może skasować "własnego" 
obiektu bo takowy nie istnieje. A skasowanie innego obiektu to już 
czynność zupełnie "normalna".

-- 
Piotr Piątkowski, Uczelniane Centrum Informatyki, AGH Krakow, POLAND
Re: Kilka pytan do C++
#1480
Author: Michal Malceki
Date: Thu, 26 Feb 1998 19:49
35 lines
2256 bytes
W poprzednim odcinku Piotr Piatkowski <kompas@galaxy.uci.agh.edu.pl> naskrobal:
: : Dzieki, ale jeszcze poprosze o wyjasnienie: czy metoda, ktora takie cos robi
: : musi byc statyczna, czy tez po instrukcji delete nie moze byc wywolan
: : niestatycznych ? Metoda, w ktorej chce to zastosowac, miala byc wirtualna.

: Oczywiście to co pisałem odnosiło się do metody dynamicznej. W 
: metodzie statycznej w ogóle nie ma takiego problemu bo nie ma 
: wskaźnika this - więc metoda statyczna nie może skasować "własnego" 
: obiektu bo takowy nie istnieje. A skasowanie innego obiektu to już 
: czynność zupełnie "normalna".

Oki, ale w zwiazku z tym jeszcze jedna rzecz mi sie przypomniala.
Czy w metodzie statycznej jest niedostepny wskaznik this, czy tez
w przypadku wywolania nie na rzecz obiektu jest on rowny zero ?

Aha i jeszcze jedno, jesli juz jestesmy przy 'this'. W helpie Borland C++ 3.1
na temat this, znalazlem takie oto zdanie:

Use of "this" is now obsolete. A better,
safer, and more general technique is to
define a member function called

  x::operator new

instead.

Przyznam, ze nic z tego nie rozumiem... co ma operator new do wskaznika
this ? I dlaczego niby jest on przestarzaly ?


-- 
.---.     .   . - Michal Malecki <mmalecki@technologist.com>/The things that
\___  ,-. | , |- ,-. ,-  mUd: zly.mud.org.pl 4000.         /can't destroy you
    \ |-' |<  |  | | |   uRl: www.kis.p.lodz.pl/~sektor   /make you
`---' `-' ' ` `' `-' '   pGp: sektor@zly.kis.p.lodz.pl   /stronger...
Re: Kilka pytan do C++
#1481
Author: Karpierz
Date: Thu, 26 Feb 1998 20:15
32 lines
1922 bytes
Michal Malceki <sektor@mud.org.pl> napisal
[...]
> Oki, ale w zwiazku z tym jeszcze jedna rzecz mi sie przypomniala.
> Czy w metodzie statycznej jest niedostepny wskaznik this, czy tez
> w przypadku wywolania nie na rzecz obiektu jest on rowny zero ?

Nie jest dostepny wskaznik this.

> Aha i jeszcze jedno, jesli juz jestesmy przy 'this'. W helpie 
> Borland C++ 3.1 na temat this, znalazlem takie oto zdanie:
> 
> Use of "this" is now obsolete. A better, safer, and more 
> general technique is to define a member function called
> 
>   x::operator new
> 
> instead.
> 
> Przyznam, ze nic z tego nie rozumiem... co ma operator new do 
> wskaznika this ? I dlaczego niby jest on przestarzaly ?

Chodzi tu nie o wskaznik this ale o przydzielanie pamieci dla 
obiektu metoda przypisania do this.
Ten sposob byl stosowany gdy jeszcze nie bylo mozliwe
definiowanie operatora new dla klasy.
Szczegolow juz nie pamietam, gdyz to bylo jeszcze w czasach
CFront 2.0, czyli ponad 5 lat temu napewno.

-- 
Pozdrawiam                                         Adam Karpierz   
mailto:karpierz@intertele.pl
http://www.intertele.pl/users/karpierz 
Re: Kilka pytan do C++
#1482
Author: Michal Malceki
Date: Tue, 03 Mar 1998 17:13
21 lines
1882 bytes
W poprzednim odcinku Karpierz <karpierz@inter.intertele.pl> naskrobal:
: Chodzi tu nie o wskaznik this ale o przydzielanie pamieci dla 
: obiektu metoda przypisania do this.
: Ten sposob byl stosowany gdy jeszcze nie bylo mozliwe
: definiowanie operatora new dla klasy.
: Szczegolow juz nie pamietam, gdyz to bylo jeszcze w czasach
: CFront 2.0, czyli ponad 5 lat temu napewno.

Dziekuje, wlasnie owa watpliwosc wyjasnila mi literatura (Bjarne Stroustrup:
Projektowanie i rozwoj jezyka C++). Szkoda, ze ci od helpa w tym smiesznym
kompilatorze nie powiedzieli, W JAKIM UZYCIU jest on przestarzaly. Najwyrazniej
uwazali, ze tylko do konstruowania obiektow bedzie sie go uzywac (zreszta,
z tego co slyszalem, kompilator ten byl pisany w turbo paskalu, wiec taka
informacja tez mnie nie zdziwi).


-- 
.---.     .   . - Michal Malecki <mmalecki@technologist.com>/The things that
\___  ,-. | , |- ,-. ,-  mUd: zly.mud.org.pl 4000.         /can't destroy you
    \ |-' |<  |  | | |   uRl: www.kis.p.lodz.pl/~sektor   /make you
`---' `-' ' ` `' `-' '   pGp: sektor@zly.kis.p.lodz.pl   /stronger...
Re: Kilka pytan do C++
#1483
Author: Karpierz
Date: Tue, 03 Mar 1998 19:19
26 lines
2093 bytes
Michal Malceki <sektor@mud.org.pl> napisal
[...]
> Dziekuje, wlasnie owa watpliwosc wyjasnila mi literatura (Bjarne 
> Stroustrup: Projektowanie i rozwoj jezyka C++). Szkoda, ze ci 
> od helpa w tym smiesznym kompilatorze nie powiedzieli...

Nie wydaje mi sie a raczej jestem przekonany ze Borland C++ a 
zwlaszcza jego nastepca C++ Builder smiesznym kompilatorem nie 
jest mimo swych brakow i niedociagniec (ktory kompilator ich nie ma...).
Co wiecej, jest bardzo przyjemny w uzyciu wiec dla poczatkujacych 
i uczacych sie dopiero, a wiec jak najbardziej dla Ciebie idealnie sie 
nadaje. Tylko zamiast helpa trzeba czytac podreczniki i dokumentacje.

> Najwyrazniej uwazali, ze tylko do konstruowania obiektow bedzie 
> sie go uzywac (zreszta, z tego co slyszalem, kompilator ten byl pisany 
> w turbo paskalu, wiec taka informacja tez mnie nie zdziwi).

Tego juz zupelnie nie rozumiem... :(. Jakie ma znaczenie _w czym_ 
jest pisany kompilator C++ ? Nie ma najmniejszego. No moze jedynie 
wplywac na szybkosc kompilatora, natomiast w zadnej mierze na jego
poprawnosc czy jakosc generowanego kodu.

-- 
Pozdrawiam                                         Adam Karpierz   
mailto:karpierz@intertele.pl
http://www.intertele.pl/users/karpierz 
Re: Kilka pytan do C++
#1484
Author: Michal Malceki
Date: Wed, 04 Mar 1998 09:04
54 lines
4229 bytes
W poprzednim odcinku Karpierz <karpierz@inter.intertele.pl> naskrobal:
: Nie wydaje mi sie a raczej jestem przekonany ze Borland C++ a 
: zwlaszcza jego nastepca C++ Builder smiesznym kompilatorem nie 
: jest mimo swych brakow i niedociagniec (ktory kompilator ich nie ma...).
Ale roznie jest z iloscia tych niedociagniec, wystarczy, ze porowna pan sobie
ich ilosc w kompilatorach Borlanda (zwlaszcza 3.1, ostatniej wersji pod dosa)
i GNU C++, czy WatCom'a. Borland C++ 3.1 akurat ma sporo niedociagniec
i bledow (oczywiscie nie uwazam za bledy rzeczy, ktorych w tym kompilatorze
nie ma ze wzgledu na to, z ktora wersja Cfronta jest kompatybilny).
Zeby bylo zlosliwiej, kompilator ten przynajmniej debuguje programy w C++
(czego nie mozna powiedziec o gcc 2.7.2 na systemach uzywajacych formatu
debugowania DWARF). A przesiasc sie na niego z powrotem JUZ nie moge, bo jest
przestarzaly (tzn. wielu rzeczy, ktore sa u mnie w powszechnym uzyciu, nie
dopuszcza). Mam tylko nadzieje, ze gcc 2.8.0 nie ma juz tego niedopatrzenia.

: Co wiecej, jest bardzo przyjemny w uzyciu wiec dla poczatkujacych 
: i uczacych sie dopiero, a wiec jak najbardziej dla Ciebie idealnie sie 
: nadaje. Tylko zamiast helpa trzeba czytac podreczniki i dokumentacje.

Jest przyziemny, ale, niestety, przestarzaly. Do tego czasu juz standard
powstal.  I zeby nie bylo niedomowien - nie chodzilo mi o wersje 4.5, 5.0,
czy Buildera, tylko o 3.1 (bo w tym helpie to wyczytalem). Jezeli zas chodzi 
o helpy, to wiem, ze nalezy czytac literature, ale w helpach powinny byc jakies
sensowne i logiczne wyjasnienia, jak np. w man. Szkoda tylko, ze C++ jest na 
UNIX'ie jezykiem drugiej kategorii i nie dosc, ze mi gcc nie pozwala na debug,
to jeszcze nie ma do niego mana (przynajmniej u mnie).

: Tego juz zupelnie nie rozumiem... :(. Jakie ma znaczenie _w czym_ 
: jest pisany kompilator C++ ? Nie ma najmniejszego. 
Dla samego kompilatora nie ma, zgoda! Tylko po prostu sam wybor jezyka
programowania czesciowo swiadczy o pewnych rzeczach. Bjarne Struostrup
pisal, ze pierwszy kompilator C++ byl zaprojektowany w C++. Nie wiem, jak
on to zrobil, ale w kazdym razie nie pisal go ani w pascalu, ani w Simuli,
ani w zadnym innym jezyku. Dla Borlanda role gralo pewnie to, ze mieli gotowy
edytor napisany dla turbo paskala, wiec rzeczywiscie nie mialo sensu pisanie
go od nowa w C++. Tylko po prostu oznacza to, ze programisci z borlanda
najprawdopodoniej zaczeli od turbo paskala, bo innego wytlumaczenia nie widze.
Zreszta nie ma czego tu poddawac w watpliwosc, przeciez Borland C++ Builder
powstal sporo czasu po wypuszczeniu Delphi, wiec wyglada to jakb Borland
stwierdzil 'no trudno, juz scierpie, wypuszcze cos takiego dla C++'. Mam
po prostu wrazenie, ze cala filozofie "zyciowa" Borlanda stanowi turbo
pascal, a kompilatory C++ pisza tylko ze wzgledow komercyjnych. Z podobnych
przyczyn musial sportowac biblioteke MFC, przeciez.

Ech, rozgadalem sie bez sensu, jak zwykle zreszta.

Pozdrawiam,


-- 
.---.     .   . - Michal Malecki <mmalecki@technologist.com>/The things that
\___  ,-. | , |- ,-. ,-  mUd: zly.mud.org.pl 4000.         /can't destroy you
    \ |-' |<  |  | | |   uRl: www.kis.p.lodz.pl/~sektor   /make you
`---' `-' ' ` `' `-' '   pGp: sektor@zly.kis.p.lodz.pl   /stronger...
Re: Kilka pytan do C++
#1485
Author: Karpierz
Date: Wed, 04 Mar 1998 10:34
36 lines
2278 bytes
Michal Malceki <sektor@mud.org.pl> napisal
[...]
> Ale roznie jest z iloscia tych niedociagniec, wystarczy, ze porowna pan
sobie
> ich ilosc w kompilatorach Borlanda (zwlaszcza 3.1, ostatniej wersji pod
dosa)
> i GNU C++, czy WatCom'a. Borland C++ 3.1 akurat ma sporo niedociagniec
> i bledow (oczywiscie nie uwazam za bledy rzeczy, ktorych w tym
kompilatorze
> nie ma ze wzgledu na to, z ktora wersja Cfronta jest kompatybilny).

A zeby bylo konkretniej, jakie to bledy i niedociagniecia ?
Jesli chcesz porownywac to porownaj sobie BC 3.1 (1992r) a owczesnymi
wersjami MS C++ a nawet z Watcomem. W sensie mozliwosci i bledow.

> Zeby bylo zlosliwiej, kompilator ten przynajmniej debuguje programy w C++
> (czego nie mozna powiedziec o gcc 2.7.2 na systemach uzywajacych formatu
> debugowania DWARF). A przesiasc sie na niego z powrotem JUZ nie moge, bo
jest
> przestarzaly (tzn. wielu rzeczy, ktore sa u mnie w powszechnym uzyciu,
nie
> dopuszcza). 

Konkretnie o jakie rzeczy chodzi ?

[...]

>Szkoda tylko, ze C++ jest na UNIX'ie jezykiem drugiej kategorii

Eeee , bez przesady. Jezyk jak jezyk. Sa na Unixie od niego o wiele gorsze
jezyki ale rowniez o wiele lepsze. Jak to na Unixie..

-- 
Pozdrawiam                                         Adam Karpierz   
mailto:karpierz@intertele.pl
http://www.intertele.pl/users/karpierz 
Re: Kilka pytan do C++
#1486
Author: Michal Malceki
Date: Wed, 04 Mar 1998 11:20
47 lines
2841 bytes
W poprzednim odcinku Karpierz <karpierz@inter.intertele.pl> naskrobal:
: A zeby bylo konkretniej, jakie to bledy i niedociagniecia ?
: Jesli chcesz porownywac to porownaj sobie BC 3.1 (1992r) a owczesnymi
: wersjami MS C++ a nawet z Watcomem. W sensie mozliwosci i bledow.
Mozliwe, ja panu z pamieci tych bledow nie zreferuje, niestety jest ich
sporo i sa dosc uciazliwe. Oczywiscie nie tyylko bledy, rowniez niektore
glupie uwagi, jak np:

while ( t = strchr( t, ' ' ) )

Borland: Possibly incorrect assignment
GNU:     Suggested parentheses around expression (moze troche inaczej)

po ujeciu wyrazenia w dodatkowe nawiasy GNU juz nic nie mowi, a Borland
dalej swoje.

:> Zeby bylo zlosliwiej, kompilator ten przynajmniej debuguje programy w C++
:> (czego nie mozna powiedziec o gcc 2.7.2 na systemach uzywajacych formatu
:> debugowania DWARF). A przesiasc sie na niego z powrotem JUZ nie moge, bo
: jest
:> przestarzaly (tzn. wielu rzeczy, ktore sa u mnie w powszechnym uzyciu,
: nie
:> dopuszcza). 

: Konkretnie o jakie rzeczy chodzi ?

W podobny sposob, z pamieci panu nie powiem. Ale jako przyklad moge podac
deklaracje tablicy z wymiarem podanum jako zmienna.


:>Szkoda tylko, ze C++ jest na UNIX'ie jezykiem drugiej kategorii

: Eeee , bez przesady. Jezyk jak jezyk. Sa na Unixie od niego o wiele gorsze
: jezyki ale rowniez o wiele lepsze. Jak to na Unixie..

W UNIX'ie C jest jezykiem uprzywilejowanym, a moim zdaniem C++ powinien byc
tak samo uprzywilejowany, niestety, jest tak jak wiele innych jezykow,
jezykiem drugiej kategorii.

Pozdrawiam,


-- 
.---.     .   . - Michal Malecki <mmalecki@technologist.com>/The things that
\___  ,-. | , |- ,-. ,-  mUd: zly.mud.org.pl 4000.         /can't destroy you
    \ |-' |<  |  | | |   uRl: www.kis.p.lodz.pl/~sektor   /make you
`---' `-' ' ` `' `-' '   pGp: sektor@zly.kis.p.lodz.pl   /stronger...
Re: Kilka pytan do C++
#1487
Author: Karpierz
Date: Wed, 04 Mar 1998 11:54
69 lines
3651 bytes
Michal Malceki <sektor@mud.org.pl> napisal
> W poprzednim odcinku Karpierz <karpierz@inter.intertele.pl> 
> naskrobal:
> : A zeby bylo konkretniej, jakie to bledy i niedociagniecia ?
> : Jesli chcesz porownywac to porownaj sobie BC 3.1 (1992r) a owczesnymi
> : wersjami MS C++ a nawet z Watcomem. W sensie mozliwosci i bledow.
> Mozliwe, ja panu z pamieci tych bledow nie zreferuje, niestety jest ich
> sporo i sa dosc uciazliwe.

Jest jedna dobra zasada w kazdej dyskusji. Jak sie nie ma dowodow
na poparcie swych tez to nie nalezy wypowiadac kategorycznych
pogladow bo mozna palnac glupstwo co niniejszym uczyniles.
Juz lepiej milczec.
Z powazniejszych rzeczy to BC3.1 nie posiadal jedynie obslugi wyjatkow,
/ale inne kompilatory tez../ ale.. w 92 roku to byla nowosc i nie
wyksztalcil 
sie jeszcze niepisany standard wyjatkow dla C++.

> Oczywiscie nie tyylko bledy, rowniez niektore
> glupie uwagi, jak np:
> 
> while ( t = strchr( t, ' ' ) )
> 
> Borland: Possibly incorrect assignment
> GNU:     Suggested parentheses around expression (moze troche inaczej)
> 
> po ujeciu wyrazenia w dodatkowe nawiasy GNU juz nic nie mowi, a Borland
> dalej swoje.

Kazdy lubi to co lubi. Czy zastosowanie nawiasow wyklucza mozliwosc
popelnienia bledu = zamiast == ?.
To nie jest argument. To jest kosmetyka a nie wada kompilatora.

[...]
> : jest przestarzaly (tzn. wielu rzeczy, ktore sa u mnie w 
> : powszechnym uzyciu nie dopuszcza). 
> 
> : Konkretnie o jakie rzeczy chodzi ?
> 
> W podobny sposob, z pamieci panu nie powiem. 

Nie rozumiem ... Nie potrafisz wymienic z pamieci rzeczy, ktore
_sa u Ciebie w powszechnym uzyciu_ a ktorych brak przeszkadza(l)
Ci w uzywaniu BC++ ??? hm...

> Ale jako przyklad moge podac deklaracje tablicy z wymiarem 
> podanum jako zmienna.

I bardzo dobrze ze nie dopuszcza. Nie jest to konstrukcja dopuszczalna
w raporcie C/C++ tak samo jak i inne przydatne operatory >? i <?. 
Sa to rzeczy specyficzne dla GCC. A wiec diabli biora przenosnosc kodu.
Mozna miec zal lub wdziecznosc (do wyboru) do autorow raportu ale nie 
do kompilatora ze ich nie implementuje.

> :>Szkoda tylko, ze C++ jest na UNIX'ie jezykiem drugiej kategorii
> 
> : Eeee , bez przesady. Jezyk jak jezyk. Sa na Unixie od niego o wiele
gorsze
> : jezyki ale rowniez o wiele lepsze. Jak to na Unixie..
> 
> W UNIX'ie C jest jezykiem uprzywilejowanym, a moim zdaniem C++ 
> powinien byc tak samo uprzywilejowany

a dlaczego powinien ?

-- 
Pozdrawiam                                         Adam Karpierz   
mailto:karpierz@intertele.pl
http://www.intertele.pl/users/karpierz 
Re: Kilka pytan do C++
#1542
Author: Karpierz
Date: Wed, 04 Mar 1998 12:06
18 lines
1723 bytes
Jeszcze jedno. Nie przepadam za Pan-owaniem mi.
Szczegolnie na newsach. Bez wzgledu na ew. roznice 
wieku, doswiadczenia itd. itp.
Mysle ze niepotrzebnie wplywa to niekiedy na dyskusje 
bo podswiadomie ustanawia zbedny a nawet szkodliwy 
rodzaj hierarchii zaciemniajacy czesto argumentacje 
merytoryczna. 
No bo jak Pan to nie moze sie mylic :) hehe
albo: 
jak Pan to zapewne "dziadek" nie na czasie, co on tam wie :)
Nic bardziej blednego niz obie te skrajnosci...  
Liczyc sie powinny wylacznie argumenty merytoryczne.
Dlatego dla Ciebie i dla wszystkich jestem Adam

-- 
Pozdrawiam                                         Adam Karpierz   
mailto:karpierz@intertele.pl
http://www.intertele.pl/users/karpierz 
Re: Kilka pytan do C++
#1544
Author: Krzysztof G. Baranowski
Date: Wed, 04 Mar 1998 12:25
13 lines
1787 bytes
>W UNIX'ie C jest jezykiem uprzywilejowanym, a moim zdaniem C++ powinien byc
>tak samo uprzywilejowany, niestety, jest tak jak wiele innych jezykow,
>jezykiem drugiej kategorii.
To jest raczej zwiazane z historia powstania Unixa, takze nie mozna
miec do nikogo z tego tytulu pretensji. Zreszta na Unixa dostepne sa
kompilatory/interpretery mnostwa jezykow: C, C++ ,asm, pascal, perl,
python, tcl, casl itd., wiec wybor jest duzy.

Kris
-- 
Krzysztof G. Baranowski - Prezes Klubu Nieszkodliwych Manjaków
"Jakie to ma znaczenie??? Wy wiecie swoje, a my mamy rację..."
http://www.knm.org.pl/              <prezes@manjak.knm.org.pl>
Re: Kilka pytan do C++
#1488
Author: Maciej MOCHOL
Date: Wed, 04 Mar 1998 12:43
16 lines
1621 bytes
On 4 Mar 1998, Karpierz wrote:

> > W UNIX'ie C jest jezykiem uprzywilejowanym, a moim zdaniem C++ 
> > powinien byc tak samo uprzywilejowany
> 
> a dlaczego powinien ?

Eeee tam,  KDE i Qt sa cale w C++, a dzialaja, sa przenaszalne, itd.
Przeciez nie kazdy musi uzywac zaglebionych templates, albo jakichs
chorych typecastow. Bo i po co.

--
Codematic                            
 code@beta.cku.pwr.wroc.pl.strasznie.mi.sie.podobaja
 mmochol@elka.pw.edu.pl.te.smieci.na.koncu.adresu.email
 http://home.elka.pw.edu.pl.i.www.rowniez/~mmochol
Re: Kilka pytan do C++
#1493
Author: Sektor van Skijlen
Date: Wed, 04 Mar 1998 15:38
124 lines
6214 bytes
W poprzednim odcinku Karpierz <karpierz@inter.intertele.pl> naskrobal:
: Michal Malceki <sektor@mud.org.pl> napisal
:> Mozliwe, ja panu z pamieci tych bledow nie zreferuje, niestety jest ich
:> sporo i sa dosc uciazliwe.

: Jest jedna dobra zasada w kazdej dyskusji. Jak sie nie ma dowodow
: na poparcie swych tez to nie nalezy wypowiadac kategorycznych
: pogladow bo mozna palnac glupstwo co niniejszym uczyniles.

Napisalem, co uwazam, po prostu. Nie natykalem sie co prawda na owe bledy
czesto, ale niestety nie mam takiej pamieci, zeby teraz pamietac dokladnie
wszystko, co wowczas zaobserwowalem. Ostatni raz uzywalem tego kompilatora
dwa miesiace temu, co sie jednak nie liczy (bo za krotko), a wczesniej to
moze dwa lata temu. Dlatego wlasnie pamieci mnie zawodzi. Niech panu bedzie,
ze nie mam zadnych dowodow na to, jakie bledy sa w BC 3.1, bo mnie sie nie chce
na nowo go teraz odpalac i ogladac, zeby sobie to przypomniec (nie jestem
masochista).

: Z powazniejszych rzeczy to BC3.1 nie posiadal jedynie obslugi wyjatkow,
: /ale inne kompilatory tez../ ale.. w 92 roku to byla nowosc i nie
: wyksztalcil 
: sie jeszcze niepisany standard wyjatkow dla C++.
To jest akurat cos, co nie zostalo dodane ze wzgledu na to, z czym BC 3.1
jest kompatybilny i o tym mowilem, ze nie uwazam za blad.

:> glupie uwagi, jak np:
[...]
:> while ( t = strchr( t, ' ' ) )
:> 
:> Borland: Possibly incorrect assignment

: Kazdy lubi to co lubi. Czy zastosowanie nawiasow wyklucza mozliwosc
: popelnienia bledu = zamiast == ?.
: To nie jest argument. To jest kosmetyka a nie wada kompilatora.
Nie powiedzialem, ze to jest wada kompilatora, tylko denerwujace
niedopatrzenie. Nie wiem, jak pan, ale mnie bardzo czesto sie zdarza takie
konstrukcje stosowac, ze wzgledu na chec polaczenia inicjalizacji ze
sprawdzaniem warunku (z wiadomych przyczyn nie moge zrobic tego ani za,
ani przed while, jezeli chce unikac specjalnych sztuczek z uzyciem goto).

Ostrzezenia niemal swiadcza zawsze o kompilatorze i ich dobor powinien byc
niezwykle ostrozny. Jezeli bedzie ich za malo - mozna przeoczyc blad,
natomiast jesli za duzo - programista zacznie olewac warningi i na to
samo wychodzi.

: [...]
:> : jest przestarzaly (tzn. wielu rzeczy, ktore sa u mnie w 
:> : powszechnym uzyciu nie dopuszcza). 
:> 
:> : Konkretnie o jakie rzeczy chodzi ?
:> 
:> W podobny sposob, z pamieci panu nie powiem. 

: Nie rozumiem ... Nie potrafisz wymienic z pamieci rzeczy, ktore
: _sa u Ciebie w powszechnym uzyciu_ a ktorych brak przeszkadza(l)
: Ci w uzywaniu BC++ ??? hm...
Coz, podalem nienajszczesliwszy.

Podam wiec lepszy (ale nie wiem, czy znow czegos nie spieprze).

class string	// stare zreszta jak C++
{
	char* t;	// itd. nieistotne
	...
	operator const char* () { return t; }

	string operator + ( const char* );
	string operator + ( const string& );
};

i gdzies tam...

string a, b;
...
string c = a + b;

GCC przelknie, a BC powie:
"Ambiguity between string::operator+(const string&) and operator const char*()"


A zeby byc bardziej kompetentnym to mi sie przypomniala jeszcze jedna rzecz:
Kiedys (wlasnie zreszta takoz w stringu) zrobilem dwa konstruktory, jeden z
const char*, drugi z char* - ten pierwszy przypisywal parametr do wewnetrznego
pola, a drugi kopiowal z przydzialem pamieci (prosze sie nie smiac, bylem
wtedy maly i glupi). No ale najsmieszniejsze, ze kompilator skompilowal mi to,
a po wpisaniu string a( "cos tam" ); wywolal konstruktor z... char*. Owszem,
kompilator postapil madrzej, niz gdyby wywolal to tak, jak zamierzalem, ale
chyba madrzej i zgodniej z regulami (na temat konwersji typow) nie powinien
tego w ogole skompilowac.



:> Ale jako przyklad moge podac deklaracje tablicy z wymiarem 
:> podanum jako zmienna.
: I bardzo dobrze ze nie dopuszcza. Nie jest to konstrukcja dopuszczalna
: w raporcie C/C++ tak samo jak i inne przydatne operatory >? i <?. 
Stanowczo pan przesadza. Nie ma najmniejszego problemu w implementacji,
a czesto tworzy sie w programach tablice o rozmiarze nieznanym w momencie
kompilacji (zaleznym od roznych czynnikow).

: Sa to rzeczy specyficzne dla GCC. A wiec diabli biora przenosnosc kodu.
Coz, nie zwrocilem na to uwagi. Mowi sie trudno (bo gcc jest dosc szeroko
rozpowszechniony). A na temat przenosnosci swego czasu sie wypowiadalem,
wiec nie bede sie powtarzal.

: Mozna miec zal lub wdziecznosc (do wyboru) do autorow raportu ale nie 
: do kompilatora ze ich nie implementuje.
Jak mi sie kompilator nie podoba, to nie wysilam sie na pretensje, tylko go
po prostu nie uzywam.

:> W UNIX'ie C jest jezykiem uprzywilejowanym, a moim zdaniem C++ 
:> powinien byc tak samo uprzywilejowany

: a dlaczego powinien ?

Bo jest z nim kompatybilny w wystarczajacy sposob, zeby mozna bylo robic
dokladnie to samo pod systemem.


-- 
.---.     .   . - Michal Malecki <mmalecki@technologist.com>/The things that
\___  ,-. | , |- ,-. ,-  mUd: zly.mud.org.pl 4000.         /can't destroy you
    \ |-' |<  |  | | |   uRl: www.kis.p.lodz.pl/~sektor   /make you
`---' `-' ' ` `' `-' '   pGp: sektor@zly.kis.p.lodz.pl   /stronger...
Re: Kilka pytan do C++
#1543
Author: Sektor van Skijlen
Date: Wed, 04 Mar 1998 15:46
27 lines
2272 bytes
W poprzednim odcinku Karpierz <karpierz@inter.intertele.pl> naskrobal:
: Jeszcze jedno. Nie przepadam za Pan-owaniem mi.
[...]
: Dlatego dla Ciebie i dla wszystkich jestem Adam

Wlasnie to samo mi przyszlo do glowy, ale nie smialem 'zaczac'.
Ktos to wczesniej akurat walnal, a ja po prostu zmalpowalem. Jakby sie ten
ktos nie wyrwal, moze pisalbym do ciebie jak teraz (dobrze, te duza litere
tez chyba mozesz mi darowac).

Akurat wlasnie taka rzecz budzi owe skrajne uczucia, jak to napisales,
z czego nie do konca zdawalem sobie sprawe. Ale tak wyszlo. A powinny
liczyc sie argumenty merytoryczne, czego jednak zawsze staralem sie
w dyskusji trzymac i podobnego stosunku do ciebie staralem sie przynajmniej
nie okazywac, co nie zawsze musialo mi wyjsc (nie pamietam komu akurat
wytknalem brak znajomosci logiki, a w szczegolnosci operatora OR, ale
pominmy to).

Calkowicie sie z toba zgadzam. Mow mi Sektor.

Pozdrawiam,

-- 
.---.     .   . - Michal Malecki <mmalecki@technologist.com>/The things that
\___  ,-. | , |- ,-. ,-  mUd: zly.mud.org.pl 4000.         /can't destroy you
    \ |-' |<  |  | | |   uRl: www.kis.p.lodz.pl/~sektor   /make you
`---' `-' ' ` `' `-' '   pGp: sektor@zly.kis.p.lodz.pl   /stronger...
Re: Kilka pytan do C++
#1545
Author: Sektor van Skijlen
Date: Wed, 04 Mar 1998 15:50
19 lines
1841 bytes
W poprzednim odcinku Krzysztof G. Baranowski <kgb@manjak.knm.org.pl> naskrobal:
: Zreszta na Unixa dostepne sa
: kompilatory/interpretery mnostwa jezykow: C, C++ ,asm, pascal, perl,
: python, tcl, casl itd., wiec wybor jest duzy.

Tak. Ale zaden z nie jest tak wyjatkowo uprzywilejowany jak C (najwyzej
shelle). A ja chcialbym, zeby C++ mial na UNIX'ie takie same przywileje,
jak C. Duzo wymagam ?

Mam nadzieje tylko, ze przynajmniej gcc bedzie juz produkowal debug info
pod DWARF-a.



-- 
.---.     .   . - Michal Malecki <mmalecki@technologist.com>/The things that
\___  ,-. | , |- ,-. ,-  mUd: zly.mud.org.pl 4000.         /can't destroy you
    \ |-' |<  |  | | |   uRl: www.kis.p.lodz.pl/~sektor   /make you
`---' `-' ' ` `' `-' '   pGp: sektor@zly.kis.p.lodz.pl   /stronger...
Re: Kilka pytan do C++
#1541
Author: Karpierz
Date: Thu, 05 Mar 1998 09:21
114 lines
6072 bytes
Sektor van Skijlen <sektor@mud.org.pl> napisal
[...]
> Napisalem, co uwazam, po prostu. Nie natykalem sie co prawda na 
> owe bledy czesto, ale niestety nie mam takiej pamieci, zeby teraz 
> pamietac dokladnie wszystko, co wowczas zaobserwowalem. Ostatni 
> raz uzywalem tego kompilatora dwa miesiace temu, co sie jednak nie 
> liczy (bo za krotko), a wczesniej to moze dwa lata temu. Dlatego 
> wlasnie pamieci mnie zawodzi. Niech panu bedzie, ze nie mam 
> zadnych dowodow na to, jakie bledy sa w BC 3.1, bo mnie sie nie 
> chce na nowo go teraz odpalac i ogladac, zeby sobie to przypomniec 
> (nie jestem masochista).

Zamiast argumentow arogancja ? hehe. Stare jak swiat...

> Ostrzezenia niemal swiadcza zawsze o kompilatorze i ich dobor 
> powinien byc niezwykle ostrozny. 

Gruba przesada, ze ostrzezenia niemal swiadcza o kompilatorze !
Z drugim argumentem sie zgadzam oprocz slowa 'niezwykle'.

[...]
> : Nie rozumiem ... Nie potrafisz wymienic z pamieci rzeczy, ktore
> : _sa u Ciebie w powszechnym uzyciu_ a ktorych brak przeszkadza(l)
> : Ci w uzywaniu BC++ ??? hm...
> Coz, podalem nienajszczesliwszy.
> 
> Podam wiec lepszy (ale nie wiem, czy znow czegos nie spieprze).
> class string	// stare zreszta jak C++
> {
> 	char* t;	// itd. nieistotne
> 	...
> 	operator const char* () { return t; }
> 
> 	string operator + ( const char* );
> 	string operator + ( const string& );
> };
> 
> i gdzies tam...
> 
> string a, b;
> ...
> string c = a + b;
> 
> GCC przelknie, a BC powie:
> "Ambiguity between string::operator+(const string&) and 
>  operator const char*()"

A mnie sie to kompiluje pod BC++ bez problemow, bez zadnych 
bledow i ostrzezen. Wiec jak to jest wlasciwie ? Dlaczego 
wprowadzasz innych w blad ? Chyba, ze znow cos spieprzyles 
jak sam powiedziales ?

> A zeby byc bardziej kompetentnym to mi sie przypomniala jeszcze 
> jedna rzecz: Kiedys (wlasnie zreszta takoz w stringu) zrobilem dwa 
> konstruktory, jeden z const char*, drugi z char* - ten pierwszy 
> przypisywal parametr do wewnetrznego pola, a drugi kopiowal z 
> przydzialem pamieci (prosze sie nie smiac, bylem wtedy maly i 
> glupi). No ale najsmieszniejsze, ze kompilator skompilowal mi to,
> a po wpisaniu string a( "cos tam" ); wywolal konstruktor z... char*. 
> Owszem, kompilator postapil madrzej, niz gdyby wywolal to tak, jak 
> zamierzalem, ale chyba madrzej i zgodniej z regulami (na temat 
> konwersji typow) nie powinien tego w ogole skompilowac.

Nieprawda. Kompilator postapil wlasciwie.
const char * i char * to dwa rozne typy i mozna to spokojnie 
wykorzystac przy przeciazaniu funkcji czy metod.
Takze wlasciwy konstruktor zostal wywolany gdyz "cos tam" w 
C++ jest typu char * a nie typu const char *.
Wiec moze zmien kierunek krytyki z BC++ na Sektor--- ?
Moze mniej ignorancji dla tworcow kompilatorow, a 
wiecej samokrytyki dla siebie ?

[...]
> :> W UNIX'ie C jest jezykiem uprzywilejowanym, a moim 
> :> zdaniem C++ powinien byc tak samo uprzywilejowany
> 
> : a dlaczego powinien ?
> 
> Bo jest z nim kompatybilny w wystarczajacy sposob, zeby 
> mozna bylo robic dokladnie to samo pod systemem.

Po pierwsze nie calkiem jest kompatybilny (chocby taka "drobnostka"
jak brak standardu name-mangling), po drugie:  po co w C++ skoro to 
juz zrobiono w C a unix nie jest systemem obiektowym wiec przy 
pisaniu nie jest tak bardzo pomocne stosowanie technik obiektowych
po trzecie: wszystkie API samego unixa i prawie wszystkie
inne to po prostu biblioteki w C wiele wiele lat rozwijane wiec po co 
niby raptem przepisywac je na C++ jesli i tak mozna do nich w C++ 
latwo zrobic (lub jest dostarczany) obiektowy wrapper ?
Po czwarte nawet dzisiaj mimo "super" optymalizujacych kompilatorow
C++ okazuje sie ze kod w C jest z reguly wydajniejszy niz C++ a w 
znakomitej wiekszosci przypadkow krotszy (mniej smieci) co dla 
systemu operacyjnego ma jednak dzisiaj znaczenie.
Na ew. Twoj argument ze przeciez w C++ nie jest konieczne
stosowanie zaawansowanych konstrukcji obiektowych i ze mozna
pisac tak jak w C, odpowiem: ale po co skoro jedno to C (i juz gotowe)
a drugie to tylko troche wiecej niz C ? Tylko po to wszystko 
przepisywac zeby sie nazywalo ze jest w C++ ?
Po piate: od dawna jest standard ANSI C, C++ zaledwie od kilku 
miesiecy.

Po prostu C zarowno w unixie jak i DOS-ie, Windowsach ale 
rowniez w innych systemach operacyjnych stal sie jezykiem
systemowym i API i przejal funkcje assemblera. 
Moze i kiedys to samo stanie sie z C++ albo z jakims innym 
jezykiem, ale wymusza to potrzeby oraz ew. fakt ze C bedzie 
nakladal zbyt wiele ograniczen na tworcow systemow operacyjnych 
czy bibliotek. Jak na razie takiej sytuacji jeszcze nie ma i dlugo 
ona nie nastapi (zaszlosci, mase juz zrobionych rzeczy itd, itp).

-- 
Pozdrawiam                                         Adam Karpierz   
mailto:karpierz@intertele.pl
http://www.intertele.pl/users/karpierz 
Re: Kilka pytan do C++
#1489
Author: Karpierz
Date: Thu, 05 Mar 1998 09:34
23 lines
2039 bytes
Maciej MOCHOL <mmochol@elka.pw.edu.pl> napisal
> On 4 Mar 1998, Karpierz wrote:
> 
> > > W UNIX'ie C jest jezykiem uprzywilejowanym, a moim 
> > > zdaniem C++ powinien byc tak samo uprzywilejowany
> > 
> > a dlaczego powinien ?
> 
> Eeee tam,  KDE i Qt sa cale w C++, a dzialaja, sa przenaszalne, 
> itd.Przeciez nie kazdy musi uzywac zaglebionych templates, 
> albo jakichs chorych typecastow. Bo i po co.

Nie bardzo rozumiem co ma KDE i Qt do tego zeby C++ mial 
stac nie jezykiem uprzywilejowanym dla unixa ? 
Jestes przekonany ze cale sa napisane w C++ ? 
Nie korzystaja gdzies na niskim poziomie z API-s napisanych
w C ?

PS: Nie dochodzi ode mnie poczta  na adres
       mmochol@elka.pw.edu.pl ani na code@beta.cku.pwr.wroc.pl.
       Mozesz mi podac jakis zapasowy ? Prawie na pewno wina 
       jest u mnie gdys mialem ostanio spore klopoty z mailem, ale 
       moze na inny adres poczta dojdzie.
Re: Kilka pytan do C++
#1492
Author: Sektor van Skijlen
Date: Thu, 05 Mar 1998 17:17
15 lines
1782 bytes
W poprzednim odcinku Karpierz <karpierz@inter.intertele.pl> naskrobal:
: Jestes przekonany ze cale sa napisane w C++ ? 
: Nie korzystaja gdzies na niskim poziomie z API-s napisanych
: w C ?

Nawet jesli korzystaja, to CO Z TEGO ? A w C++ NIE DA sie z nich korzystac ?
Moze to nie jest akurat powod, ale ja za to nie widze powodu, dla ktorego
jezyk C ma miec wieksze przywileje pod UNIX'em od C++.


-- 
.---.     .   . - Michal Malecki <mmalecki@technologist.com>/The things that
\___  ,-. | , |- ,-. ,-  mUd: zly.mud.org.pl 4000.         /can't destroy you
    \ |-' |<  |  | | |   uRl: www.kis.p.lodz.pl/~sektor   /make you
`---' `-' ' ` `' `-' '   pGp: sektor@zly.kis.p.lodz.pl   /stronger...
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