Article View: alt.comp.lang.learn.c-c++
Article #88Re: virtual operator+
From: Karl Heinz Buchegger
Date: Fri, 17 May 2002 08:46
Date: Fri, 17 May 2002 08:46
44 lines
2677 bytes
2677 bytes
Karl Heinz Buchegger wrote: > > > Christopher Deli wrote: > >> The thing is that the assignment I am working with demands that I have a >> base class A with two subclasses (B and C) and I need to make ONE list >> with >> both B and C objects. A should be an abstract class. So I need to >> create an >> A pointer which sometimes points on B objects and sometimes on C objects. >> And on top of that I need an operator which can add two B objects. If >> I only >> put the operator in class B it wont work if the pointers I try to add >> have >> static type A and dynamic type B. >> > > > First of all: please don't top post. > Scroll to the section you want to reply to, and insert > your comments there. > > As you have seen, there is a technical problem with having > an operator: the return type. > Are you sure you *must* implement an operator or will an > ordinary member function be sufficient? > If your assignment explicitely states an operator, then I > would suggest to ask your teacher, how he thinks this should > work (Hint: it is impossible, since operator+ has to return > an object, but for polymorphism you would need a pointer or > a reference). > I should have said: It is impossible without giving the operator+ a very unusual semantics. Something you definitly want to avoid. -- Karl Heinz Buchegger kbuchegg@gascad.at
Technical Details
Message-ID:
<3CE4C382.8090808@gascad.at>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!fu-berlin.de!uni-berlin.de!62.46.208.145!not-for-mailReferences:
<5mVE8.38287$n4.8427350@newsc.telia.net> <rg49eusfujq9l0nq0m5dimtbenu36m0lor@4ax.com> <VL2F8.38343$n4.8444053@newsc.telia.net> <3CE4C209.7010606@gascad.at>Show Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 109fba,e2ff40a616ce87ab X-Google-Attributes: gid109fba,public X-Google-Thread: 10d4ba,e2ff40a616ce87ab X-Google-Attributes: gid10d4ba,public X-Google-Thread: 114592,e2ff40a616ce87ab X-Google-Attributes: gid114592,public X-Google-ArrivalTime: 2002-05-17 01:43:05 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!fu-berlin.de!uni-berlin.de!62.46.208.145!not-for-mail From: Karl Heinz Buchegger <kbuchegg@gascad.at> Newsgroups: alt.comp.lang.learn.c-c++,att.lang.c++,comp.lang.c++ Subject: Re: virtual operator+ Date: Fri, 17 May 2002 10:46:58 +0200 Organization: GASCAD Lines: 45 Message-ID: <3CE4C382.8090808@gascad.at> References: <5mVE8.38287$n4.8427350@newsc.telia.net> <rg49eusfujq9l0nq0m5dimtbenu36m0lor@4ax.com> <VL2F8.38343$n4.8444053@newsc.telia.net> <3CE4C209.7010606@gascad.at> NNTP-Posting-Host: 62.46.208.145 Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Trace: fu-berlin.de 1021624983 22720882 62.46.208.145 (16 [95537]) User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; de-DE; rv:0.9.4.1) Gecko/20020314 Netscape6/6.2.2 X-Accept-Language: de-DE