Click here to Skip to main content
15,922,427 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
QuestionHow Draw default button MFC (BS_DEFPUSHBUTTON)? Pin
thanhtuan198917-Oct-13 18:08
thanhtuan198917-Oct-13 18:08 
QuestionWhy a HANDLE created by CreateFile can be assigned to an object Pin
digitalspace.xjtu17-Oct-13 5:07
digitalspace.xjtu17-Oct-13 5:07 
AnswerRe: Why a HANDLE created by CreateFile can be assigned to an object Pin
Albert Holguin17-Oct-13 5:20
professionalAlbert Holguin17-Oct-13 5:20 
GeneralRe: Why a HANDLE created by CreateFile can be assigned to an object Pin
digitalspace.xjtu17-Oct-13 5:33
digitalspace.xjtu17-Oct-13 5:33 
AnswerRe: Why a HANDLE created by CreateFile can be assigned to an object Pin
Chris Losinger17-Oct-13 5:25
professionalChris Losinger17-Oct-13 5:25 
GeneralRe: Why a HANDLE created by CreateFile can be assigned to an object Pin
digitalspace.xjtu17-Oct-13 5:35
digitalspace.xjtu17-Oct-13 5:35 
QuestionHow to generate DSA 512 bit KeyPair in VC++ 2010 Pin
IICTECH17-Oct-13 3:05
IICTECH17-Oct-13 3:05 
QuestionHow to Create Single Process in C++ Pin
Thong LeTrung16-Oct-13 6:40
Thong LeTrung16-Oct-13 6:40 
AnswerRe: How to Create Single Process in C++ Pin
Rajesh R Subramanian16-Oct-13 6:52
professionalRajesh R Subramanian16-Oct-13 6:52 
GeneralRe: How to Create Single Process in C++ Pin
Thong LeTrung16-Oct-13 6:58
Thong LeTrung16-Oct-13 6:58 
QuestionHow does this code with "event" functions? Pin
Vaclav_16-Oct-13 6:38
Vaclav_16-Oct-13 6:38 
AnswerRe: How does this code with "event" functions? Pin
Rajesh R Subramanian16-Oct-13 9:05
professionalRajesh R Subramanian16-Oct-13 9:05 
GeneralRe: How does this code with "event" functions? Pin
Vaclav_16-Oct-13 14:36
Vaclav_16-Oct-13 14:36 
GeneralRe: How does this code with "event" functions? Pin
Rajesh R Subramanian16-Oct-13 19:15
professionalRajesh R Subramanian16-Oct-13 19:15 
QuestionRe: How does this code with "event" functions? Pin
Vaclav_17-Oct-13 8:59
Vaclav_17-Oct-13 8:59 
QuestionDisk Wipe Pin
Member 862075915-Oct-13 23:52
Member 862075915-Oct-13 23:52 
AnswerRe: Disk Wipe Pin
Member 862075916-Oct-13 2:11
Member 862075916-Oct-13 2:11 
AnswerRe: Disk Wipe Pin
Vaclav_16-Oct-13 14:43
Vaclav_16-Oct-13 14:43 
SuggestionRe: Disk Wipe Pin
SoMad16-Oct-13 17:17
professionalSoMad16-Oct-13 17:17 
AnswerRe: Disk Wipe Pin
Albert Holguin17-Oct-13 5:33
professionalAlbert Holguin17-Oct-13 5:33 
AnswerRe: Disk Wipe Pin
TheKingofdemon3318-Oct-13 9:14
TheKingofdemon3318-Oct-13 9:14 
QuestionPolymorphism & Assignment Op. & Copy Constructors in C++ Pin
federico.strati15-Oct-13 2:16
federico.strati15-Oct-13 2:16 
AnswerRe: Polymorphism & Assignment Op. & Copy Constructors in C++ Pin
Aescleal21-Oct-13 4:45
Aescleal21-Oct-13 4:45 
That looks like a shed load of code just to implement copying and assignment. Are you sure that copying objects of arbitrary types is both necessary to your design and won't turn into a complete millstone around your development team's neck? They might not thank you when they have to grind that lot out again to implement a new class? I'm also wincing at how the assignment operators are written - the canonical way you write an assignment operator in C++ is to use a copy and swap.

So... What would I suggest? Firstly go back to your design and see if it can be reworked to use a set of relatively simple principles:

- value types have no polymorphic behaviour and are copy constructable and assignable if appropriate. Use copy and swap to write the assignment operator for a value type

- polymorphic types are accessed through interfaces. Don't assign or copy the objects themselves, reference them through pointers or references to the interfaces they implement. The only place that knows the concrete type of a polymorphic type is the lump of code that creates the object

- don't use implementation inheritance. Containment gives far less headaches

- minimise manual memory management wherever possible. Use parameterise from above (PFA) and objects created on the stack wherever possible. If you write a delete statement pinch yourself and look at using std::unique_ptr or std::shared_ptr instead. RAII is your friend

- make everything exception safe but don't handle exceptions in too many places. One try/catch set in a function

If there's still a need to deep copy objects through pointers to arbitrary base classes then consider implementing a clonable interface. Never slice objects - once you lop off the context you can never get it back.
GeneralRe: Polymorphism & Assignment Op. & Copy Constructors in C++ Pin
federico.strati21-Oct-13 22:04
federico.strati21-Oct-13 22:04 
GeneralRe: Polymorphism & Assignment Op. & Copy Constructors in C++ Pin
Aescleal21-Oct-13 23:15
Aescleal21-Oct-13 23:15 

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.