C++ - What is this doing if the constructor is private? -
in code below, why compiler not complain mclass2?
class cmyclass{ private: cmyclass(){} }; void testmethod(){ cmyclass mclass1; //fails. cmyclass mclass2(); //works. }
because you've declared function mclass2 of 0 arguments returns cmyclass. that's valid option since there be, say, static cmyclass instance function has access to. note cmyclass still has public copy constructor.
(to convince yourself, compile module assembler , observe commenting out line cmyclass mclass2(); produces same output.)
Comments
Post a Comment