Click here to Skip to main content
15,888,113 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
GeneralRe: Still inheritance... Pin
Ranjan Banerji4-Oct-02 5:58
Ranjan Banerji4-Oct-02 5:58 
GeneralRe: Still inheritance... Pin
Tomasz Sowinski4-Oct-02 6:13
Tomasz Sowinski4-Oct-02 6:13 
GeneralRe: Still inheritance... Pin
Ranjan Banerji4-Oct-02 6:35
Ranjan Banerji4-Oct-02 6:35 
GeneralInheritance, interfaces and polymorphism... Pin
Bertrand Boichon3-Oct-02 22:57
Bertrand Boichon3-Oct-02 22:57 
GeneralRe: Inheritance, interfaces and polymorphism... Pin
Tomasz Sowinski3-Oct-02 23:56
Tomasz Sowinski3-Oct-02 23:56 
GeneralRe: Inheritance, interfaces and polymorphism... Pin
Bertrand Boichon4-Oct-02 13:59
Bertrand Boichon4-Oct-02 13:59 
GeneralRe: Inheritance, interfaces and polymorphism... Pin
Tomasz Sowinski5-Oct-02 0:35
Tomasz Sowinski5-Oct-02 0:35 
GeneralRe: Inheritance, interfaces and polymorphism... Pin
Bertrand Boichon5-Oct-02 14:00
Bertrand Boichon5-Oct-02 14:00 
Ok... more questions: Big Grin | :-D

First of all, what do you mean CImage& is cheating? I mean, to me, it seems logical to use the reference (address in memory) of a CImage object (base on ISampleData interface), since I cannot return an instance (by value) of type ISampleData (pure abstract class).

Secondly, what do you mean by "inefficient"? Passing/returning by value versus by reference?
The other possiblity is to create the object on the heap (with new) and pass/return the pointer by value, like this:

ISampleData* Acquire()
{
CImage* result = new CImage();
...
return result;
}

CImage* image = (CImage*) Acquire();

But then I thought doing that is less "efficient" than copying an object to the 'caller' stack (by returning a reference to a CImage obj)????


The other thing is:
Surprisingly (and I thought the same as you did) polymorphism is NOT lost, and I don't know why...
I made a little experiment: I created a method in my class CImage called Display() which is not overloaded from CSampleData (i.e. just a new method specific to CImage). Then I did exactly as before (with "Acquire()" returning a reference to ISampleData):

CImage image = (CImage&) m_lpDigitizer->Acquire();

And guess what? when I call "image.Display()", well it works fine!

Why? Is it because I am dealing with reference to an object, not the object itself. Polymorphism apply to an object copy (by value), not to a reference copy of it?


Bertrand Boichon









GeneralRe: Inheritance, interfaces and polymorphism... Pin
Tomasz Sowinski7-Oct-02 2:18
Tomasz Sowinski7-Oct-02 2:18 
GeneralRe: Inheritance, interfaces and polymorphism... Pin
Bertrand Boichon7-Oct-02 10:20
Bertrand Boichon7-Oct-02 10:20 
GeneralRe: Inheritance, interfaces and polymorphism... Pin
Tomasz Sowinski7-Oct-02 11:19
Tomasz Sowinski7-Oct-02 11:19 
GeneralRe: Inheritance, interfaces and polymorphism... Pin
Bertrand Boichon7-Oct-02 11:23
Bertrand Boichon7-Oct-02 11:23 
GeneralRe: Inheritance, interfaces and polymorphism... Pin
Tomasz Sowinski8-Oct-02 4:26
Tomasz Sowinski8-Oct-02 4:26 
GeneralRe: Inheritance, interfaces and polymorphism... Pin
Bertrand Boichon8-Oct-02 8:19
Bertrand Boichon8-Oct-02 8:19 
GeneralToolbar button state (enable/disable) Pin
Daniel Strigl3-Oct-02 22:40
Daniel Strigl3-Oct-02 22:40 
GeneralRe: Toolbar button state (enable/disable) Pin
Tomasz Sowinski4-Oct-02 0:05
Tomasz Sowinski4-Oct-02 0:05 
GeneralProblem with CMultiRectTracker into CScrollView Pin
Gianfranco3-Oct-02 22:39
Gianfranco3-Oct-02 22:39 
GeneralRe: Problem with CMultiRectTracker into CScrollView Pin
Tomasz Sowinski4-Oct-02 0:16
Tomasz Sowinski4-Oct-02 0:16 
GeneralIHTMLSelectionObject Pin
candan3-Oct-02 22:27
professionalcandan3-Oct-02 22:27 
GeneralRe: IHTMLSelectionObject Pin
Stephane Rodriguez.3-Oct-02 23:25
Stephane Rodriguez.3-Oct-02 23:25 
GeneralRe: IHTMLSelectionObject Pin
candan7-Oct-02 15:17
professionalcandan7-Oct-02 15:17 
GeneralRe: IHTMLSelectionObject Pin
Stephane Rodriguez.7-Oct-02 19:10
Stephane Rodriguez.7-Oct-02 19:10 
GeneralRe: IHTMLSelectionObject Pin
candan7-Oct-02 19:17
professionalcandan7-Oct-02 19:17 
QuestionHow can I change the bitmap of a toolbar button at runtime? Pin
Daniel Strigl3-Oct-02 22:17
Daniel Strigl3-Oct-02 22:17 
AnswerRe: How can I change the bitmap of a toolbar button at runtime? Pin
Anonymous3-Oct-02 22:37
Anonymous3-Oct-02 22:37 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.