Click here to Skip to main content
Click here to Skip to main content

Making Your Classes Copy-safe

By , 11 Dec 2012
Rate this:
Please Sign up or sign in to vote.

I decided in the middle of my project to make my project follow coding standard, and be more secure and encapsulated.  For me, a small macro definition changed everything just by disabling coping for all objects and preventing generation of default copy constructor and assignment operator.

#define DISABLE_COPY(CLASS_NAME) \
private: \  
CLASS_NAME ( const CLASS_NAME & );               // NOT IMPLEMENTED  \ 
CLASS_NAME & operator = ( const CLASS_NAME & );  // NOT IMPLEMENTED 

Inside your class, add this macro with the class name as parameter; just beside DECLARE_MESSAGE_MAP macro, for example.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

Huzifa Terkawi
Software Developer (Senior)
Syrian Arab Republic Syrian Arab Republic
No Biography provided

Comments and Discussions

 
Questionprivate: Pinmemberalexander_st11-Dec-12 20:17 
AnswerRe: private: PinmemberMr. Tines12-Dec-12 1:03 
AnswerRe: private: PinmemberHuzifa Terkawi12-Dec-12 2:46 

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

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

| Advertise | Privacy | Mobile
Web02 | 2.8.140421.2 | Last Updated 12 Dec 2012
Article Copyright 2012 by Huzifa Terkawi
Everything else Copyright © CodeProject, 1999-2014
Terms of Use
Layout: fixed | fluid