"warning: 'class Debug' has pointer data members but does not override 'Debug(const Debug&)' or 'operator=(const Debug&)' [-Weffc++]"
The only pointer member I see here is the HANDLE hTHread. Why should I override my constructors or add a move/copy to this class as the compiler suggests?
class Debug
{
private:
HANDLE hThread;
bool ConsoleActive;
friend DWORD ThreadProc(LPVOID lpParameter);
friend long __stdcall WindowProcedure(HWND window, uint32_t msg, WPARAM wp, LPARAM lp);
public:
Debug();
explicit Debug(bool CreateDebugConsole = false, bool CreateDebugWindow = false);
//Other constructs and destructor..
};
It says the same for:
class Brushes
{
private:
HDC hDC;
HBRUSH NewBrush;
HBRUSH OldBrush;
public:
Brushes(HDC hdc, COLORREF colour);
//Destructor and other constructors here..
};
I read this tutorial: http://pages.cs.wisc.edu/~hasti/cs368/CppTutorial/NOTES/CLASSES-PTRS.html
It doesn't use the copy swap idiom or something like that but it explained to me the basics. I just don't see a reason to use it for HBRUSH/HPEN or Handles :S?