C++类头文件不暴露私有变量的一种写法
在类的头文件中不暴露私有变量,目的一般有两个:? 1. 提供给别人的dll对应的头文件中,不希望在头文件中暴露私有变量的名称;? 2. 因为私有变量的类型需要包含另一个头文件,所以不希望在头文件中包含其它头文件; 一般可以用下面的方法来隐藏私有变量。? TWebSocketServer.h class TWebSocketServer { public: TWebSocketServer(); ~TWebSocketServer(); void runServer(int port); void stopServer(); private: class TWebSocketServerImpl; TWebSocketServerImpl *ptr; }; TWebSocketServer.cpp #include #include class TWebSocketServer::TWebSocketServerImpl { public: TWebSocketServerImpl(){} ~TWebSocketServerImpl() { stopServer(); } void runServer(int port) { // Set logging settings echo_server.set_access_channels(websocketpp::log::alevel::all); echo_server.clear_access_channels(websocketpp::log::alevel::frame_payload); // Initialize Asio echo_server.init_asio(); // Register our message handler echo_server.set_message_handler(bind(&on_message,this,::_1,::_2)); // Listen on port 9002 echo_server.listen(port); // Start the server accept loop echo_server.start_accept(); // Start the ASIO io_service run loop echo_server.run(); } void stopServer() { echo_server.stop_listening(); } private: // Create a server endpoint //在 #include server echo_server; /////////////////////////////// TWebSocketServer::TWebSocketServer() { ptr = new TWebSocketServerImpl; } TWebSocketServer::~TWebSocketServer() { if(ptr) { delete ptr; } } void TWebSocketServer::runServer(int port) { ptr->runServer(port); } void TWebSocketServer::stopServer() { ptr->stopServer(); } ---------------------? 作者:阳光柠檬_? 来源:CSDN? 原文:https://blog.csdn.net/liukang325/article/details/79172336? 版权声明:本文为博主原创文章,转载请附上博文链接! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |