I wrote an singletone class as below:
class logger
{
FILE *__fp_log = NULL;
const char* __logpath;
//Constructor
logger();
static logger* __instance;
logger& operator=(const logger &) ;
logger(const logger &);
public:
~logger();
void write_file( const char* ,... );
static logger* getInstance();
};
I understand that I need to make Copy Constructor and assignment operator as private (reference here). But still I can access them from main():
logger* log = logger::getInstance();
logger* log2 = logger::getInstance();
log = logger::getInstance();
I should get a compilation warning, any pointer why compilation is not complaining? I am compiling using g++:
g++ .\main.cpp .\logger.cpp