在类的头文件中不暴露私有变量,目的一般有两个:
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
版权声明:本文为博主原创文章,转载请附上博文链接!
总结以上是内存溢出为你收集整理的C++类头文件不暴露私有变量的一种写法全部内容,希望文章能够帮你解决C++类头文件不暴露私有变量的一种写法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)