Author Topic: Overrides and Implementations Dialog  (Read 5624 times)

Adam

  • EA Novice
  • *
  • Posts: 9
  • Karma: +0/-0
    • View Profile
Overrides and Implementations Dialog
« on: July 17, 2007, 09:41:06 pm »
I'm using C++, when I bring up the overrides and implementations dialog I would like to filter out all the non-virtual methods, so only those that can be overridden are displayed in the list.

This will be handy for a couple of reasons, first off if you inherit from a pretty full class (or mutliple classes or interfaces) then the list becomes shorter and easier to manage. (also the current implementation is good in that those methods already implemented are not shown in the list)

Second, it would be good to double check, in a given concrete class, "Have I implemented everything I need to implement?" you could bring up this dialog and look at what it contains to determine if you need to implement anything further.

In Addition, it would be good to somehow indicate the difference between virtual and pure virtual - in terms of what can be implemented, and what must be implemented.

I'll provide an example.


IInterface defines 2 virtual methods, bill and ted

class IInterface
{
public:
   virtual void bill() = 0;
   virtual void ted() = 0;
}

AbstractClass implements IInterface and only implements bill(), and defines one more non virtual method.

class AbstractClass : public IInterface
{
public:
   virtual void bill() { }

   void excellentAdventure() { }
}


When the Overrides and Implementations dialog is brought up on AbstractClass, only ted() is selectable.

Now, say ConcreteClass inherits from IAbstractClass. When the Overrides and Implementations dialog is brought up on ConcreteClass, you can select bill, or ted but not excellentAdventure. Since ted has never been implemented before, it should be indicated in a different way to bill (possibly coloured?), because bill already has an implementation where ted has not.


Now I know all this is C++ specific, I suppose this would need to be dependent on the language selected for the elements? maybe a tickbox on the Overrides and Implementations dialog called "show non virtual" or "hide non virtual".

Do people using other languages still use the virtual and pure attributes on operations?