c++: virtual methods fail compilation if.....
I want to create what in java is called an abstract class. It's a class that's not supposed to be instanced directly but has to be extended by other classes. This class has a number of methods that have to be overriden by its subclasses.
I have a virtual method in that class that returns a value of a certain type... say int. What can I do to stop the compiler from complaining if I don't return anything in that method because I don't return any value? It's going to be overriden by the subclasses, anyway! Maybe there's a way to make a method really "abstract" (C++wise) instead of just saying it's virtual and then I would force myself to do the coding in the subclass (like abstract methods do in java). |
Quote:
Code:
class a |
Have you considered using a Java "interface" instead:
http://java.sun.com/docs/books/tutor...interface.html And yeah, you can certainly do "abstract classes" in Java. In C++, as "dmail" pointed out, you define one or more of the functions (virtual functions, of course) as "=0". In Java, on the other hand, you simply apply the "abstract" keyword to the entire class: http://java.sun.com/docs/books/tutor.../abstract.html But 90% of the time, "interface" is really what you want. Of the remaining 10%, usually you'll *still* use an "interface", but then define some concrete "helper class" (one that implements your interface), that will provide default functionality, and that your users can subclass. |
Yeah, I know about the abstract classes. Once you say one method is abstract in a java class, the class has to be abstract.... but I'm working on c++ right now, not java.... and I know about interfaces too (I even worked with EJBs... go figure!!!! :-D).
|
All times are GMT -5. The time now is 06:07 PM. |