Click here to Skip to main content
16,010,334 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
GeneralRe: Still inheritance... Pin
Tomasz Sowinski4-Oct-02 5:55
Tomasz Sowinski4-Oct-02 5:55 
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 
Passing/returning by value has disadvantages:

1) there's a copy created with a call to copy constructor. While this isn't a problem for built in types like int or double or small structs like POINT, it may significantly hurt performance for other objects, especially ones which allocate memory in constructor (std::vector, for example).

2) polymorphism may be lost. When you have function like this...
ISampleData Acquire()
{
CImage result;
...
return result;
}

CImage image = Acquire();

... then the 'result' variable doesn't reach 'image'. Instead, temporary object of type ISampleData is created (it may be impossible when ISampleData has pure virtual methods) and copied again into 'image'. Your cast to CImage& is simply cheating, in fact, on the right side of '=' you don't have CImage object anymore.


Bertrand Boichon wrote:
Instead, I'd like to copy the object created in "Acquire", into the object "image" (i.e. "image = m_lpDigitizer->Acquire();").
That is: using the stack, not the heap.


You'd have to return CImage, not ISampleData. As I said above, this may be quite inefficient, however.


Tomasz Sowinski -- http://www.shooltz.com

*** Si fractum non sit, noli id reficere. ***

GeneralRe: Inheritance, interfaces and polymorphism... Pin
Bertrand Boichon5-Oct-02 14:00
Bertrand Boichon5-Oct-02 14:00 
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 

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.