delorie.com/archives/browse.cgi | search |
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
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |