加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C++类头文件不暴露私有变量的一种写法

发布时间:2020-12-15 04:51:55 所属栏目:百科 来源:网络整理
导读:在类的头文件中不暴露私有变量,目的一般有两个:? 1. 提供给别人的dll对应的头文件中,不希望在头文件中暴露私有变量的名称;? 2. 因为私有变量的类型需要包含另一个头文件,所以不希望在头文件中包含其它头文件; 一般可以用下面的方法来隐藏私有变量。? T

在类的头文件中不暴露私有变量,目的一般有两个:?


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?


版权声明:本文为博主原创文章,转载请附上博文链接!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读