c++ - Class members and inheritance -


i lost. have class editor , class controller. classes workfloweditor , workflowcontroller derive editor , controller respectively. class controller has protected member editor editor , class workflowcontroller has private member workfloweditor editor (with same name).


edit eitant:
here's simplified code snipped illustrate op has described:

class controller {     editor editor;     // ... }  class workfloweditor : public editor {     // ... };  class workflowcontroller : public controller {     workfloweditor editor;     // ... }; 

my application module graphical interface. in workflow mode, ribbon appears on launch, , wizard displayed. on click on 1 button, method in class controller called. execution crashes because @ time, editor editor class member of object type controller dead. class member editor editor same class member workfloweditor editor (same name).

in other words, if class a has member of class b , class childa (derived a) has member of class childb (derived b), , member of type childb , b have same name, isn't member "inherited"?

the object inherited, not same object 1 declared in derived class. derived class member separate object base class member, though have same name. technically, hides base class member, making accessible qualified name, controller::editor.

you can achieve want virtual function, override in derived class access object contained there:

class controller { public:     // no data members, abstract interface      // access data member of derived class     virtual editor & editor() = 0;     virtual ~controller() {} };  class workflowcontroller : public controller { public:     workfloweditor & editor() {return editor_;}  private:     // object - accessible true type here, or     // abstract type via abstract interface.     workfloweditor editor_; }; 

Comments

Popular posts from this blog

c# - SVN Error : "svnadmin: E205000: Too many arguments" -

c# - Copy ObservableCollection to another ObservableCollection -

All overlapping substrings matching a java regex -