From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: *** X-Spam-Status: No, score=3.8 required=5.0 tests=BAYES_00,INVALID_MSGID, RATWARE_MS_HASH,RATWARE_OUTLOOK_NONAME autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 109fba,b87849933931bc93 X-Google-Attributes: gid109fba,public X-Google-Thread: fac41,b87849933931bc93 X-Google-Attributes: gidfac41,public X-Google-Thread: 103376,b87849933931bc93 X-Google-Attributes: gid103376,public X-Google-Thread: f43e6,b87849933931bc93 X-Google-Attributes: gidf43e6,public X-Google-Thread: 1108a1,b87849933931bc93 X-Google-Attributes: gid1108a1,public X-Google-Thread: 114809,b87849933931bc93 X-Google-Attributes: gid114809,public From: "Russ McClelland" Subject: Re: What is wrong with OO ? Date: 1997/02/12 Message-ID: <01bc18ef$1528ff70$ed22109b@russ-mc-laptop>#1/1 X-Deja-AN: 218275389 References: <5dopri$dei@news4.digex.net> Organization: Perot Systems Newsgroups: comp.lang.c++,comp.lang.smalltalk,comp.lang.eiffel,comp.lang.ada,comp.object,comp.software-eng Date: 1997-02-12T00:00:00+00:00 List-Id: > : The decision to make a function virtual assumes a knowledge of what > : users of your class are going to do. It akin to predicting the future. > : One of the problems with C++ is this very point. Should you, as a > : designer of a class restrict what someone else does with your class? > > How does making inherited classes able to override a parent function > "restrict"ing "what someone else does with" that class"? > > Elliott It doesn't and that is not what he's pointing out. Here's what he's saying: To override a parents method, that method must be declared as virtual. If it isn't declared as virtual, you can never get polymorphic behavior for that method. The reason this could potentially cause problems is that this: As the designer of a class, I don't always know how subclasses will be created and used, ie. I don't know which methods to make virtual. What if someone wants to override a method that I didn't declare virtual? -- Persistence is futile. You will be aggregated...