Re: [PATCH] adding constant to the operations properties
- From: Matthieu Sozeau <mattam netcourrier com>
- To: Johann Tienhaara <tech mountaingrouse com>
- Cc: Dia <dia-list gnome org>
- Subject: Re: [PATCH] adding constant to the operations properties
- Date: Wed, 30 Jan 2002 00:17:10 +0100
[Tue, 29 Jan 2002 13:23:10 -0800] a écrit:
A quick question: I'm not a C++ guru, so is it ever necessary in C++ to
indicate that a method is *both* final and polymorphic?
For example (sorry about the syntax, it's been a few years...):
class Foo {
public void bar() {
cout << "Foo";
}
}
class Foo2 : Foo {
public virtual void bar() const {
cout << "Foo2";
}
}
I think this would mean that:
1) a Foo2 that is cast as a Foo will
still output "Foo2" every time its
bar() method is called; and
2) no class can override the Foo2
class's bar() method.
Is this a valid scenario? I'm just wondering if maybe UML_POLYMORPHIC
should be kept as a separate enumeration from UML_ABSTRACT /
UML_FINAL...? What do you think?
Foo2 * foo2 = new Foo2;
((Foo *) foo2)->bar() ouput "Foo" since bar in Foo's not virtual.
Actually a class Foo3 could override Foo2 bar method, wich will be called when casted to Foo3.
and "Foo2" for (Foo2 *) and "Foo" for (Foo *).
Although I thought gcc would output an error for overriden bar() in Foo2, I encountered no problems with that.
In fact, I implemented the UMLInheritance as an enum { UML_ABSTRACT, UML_POLYMORPHIC, UML_LEAF }, so that one
can select only one, which is the proper behavior (I think). Since in C++, there is no way
(http://www.parashift.com/c++-faq-lite/strange-inheritance.html) to make a Class or Method "final" or a
"leaf", UML_LEAF can only be used in Java or in C++ by adding a /* final */ comment, with no technical
effect. Since UML_LEAF _and_ UML_ABSTRACT is a non-sense, the enum is good.
Which direction from Paris are you? I've driven through the countryside
to get to a po dunk little airport north of Paris (Beauvais or something
like that), but haven't seen much else of the environs around the city.
However if I can ever get my act together and ameliorer mon francais
(...!) I'd much rather be living in either France or Italy than on this
ass-backwards continent. One of these days...
Cheers Matthieu. TTYL,
Johann
I'm in the south, near Massy. C'est une banlieue très agréable.
--
"Only two things are infinite, the universe and human stupidity, and I'm not sure about the former. "
- Albert Einstein (1879-1955)
MaT|TaM
<mattam netcourrier com & mattam.selfhost.com>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]