www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1995/07/28/03:22:33

Xref: news-dnh.mv.net comp.os.msdos.djgpp:1207
Path: news-dnh.mv.net!mv!news.sprintlink.net!howland.reston.ans.net!news.starnet.net!wupost!waikato!comp.vuw.ac.nz!mu.sans.vuw.ac.nz!empty
From: empty AT sans DOT vuw DOT ac DOT nz (Malcolm Taylor)
Newsgroups: comp.os.msdos.djgpp
Subject: Re: class and subclass funny with operator=
Date: 27 Jul 1995 02:28:48 GMT
Organization: SANS, Student Access Network System
Lines: 17
References: <DCBMH8 DOT EBq AT jade DOT mv DOT net>
Nntp-Posting-Host: mu.sans.vuw.ac.nz
To: djgpp AT sun DOT soe DOT clarkson DOT edu
Dj-Gateway: from newsgroup comp.os.msdos.djgpp

A.Appleyard (A DOT APPLEYARD AT fs2 DOT mt DOT umist DOT ac DOT uk) wrote:
:   This test program:-
: class ground{public: double x,y;
:     operator= (ground&g){x =g.x; y =g.y;};
:     operator+=(ground&g){x+=g.x; y+=g.y;};};
: class air : public ground {public: double z;};
: main(){ground G; air A; double n;
:     n=A.x; n=A.y; n=A.z;
:     A=A;
:     A=G;
You cannot do this. The class air can be automatically converted to a 
class ground, but not the other way around. There is no operator for 
initialising class air with class ground. C++ automatically creates the 
operator= for the class, and this is where it finds the error. Basically 
a class can de 'demoted' but not 'promoted' if you get the idea.

Malcolm

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019