C++ 使用成员初始化列表的一个小坑
2024-09-08 13:55:26
注意在成员列表中初始化的顺序并不是列表顺序 而是:
- 在类中声明的顺序!
EventLoop::EventLoop() :looping(false), quit(false),_tid(curThreadId()), poller(new Poller(this)){//, timerQueue(new TimerQueue(this)) {
std::cout<<_tid<<std::endl;
if (t_LoopInThisThread) {
// LOG_FATAL << "Another EventLoop " << t_LoopInThisThread << " Exists in this Thread " << _tid;
}
else {
t_LoopInThisThread = this;
}
}
初始化顺序是由
private:
typedef std::vector<Channel*> ChannelVec;
std::unique_ptr<Poller> poller;
std::unique_ptr<TimerQueue> timerQueue;
Timestamp pollReturnTime;
ChannelVec activeChannels;
ThreadId _tid;
bool looping;
bool quit;
这里决定的。。。
在成员初始化列表中有前后顺序依赖的时候一定要注意!
最新文章
- PHP开发程序应该注意的42个优化准则
- JQuery selector - not
- UVA 10391 stl
- vsftpd配置参数详细整理
- maven入门
- mysql: 两个字段合并,字符时间转时间戳,别名字段作为where条件查询
- flash 和 第三方程序交互
- HTML5之拖拽(兼容IE和非IE)
- 多个电脑共用一个ssh
- erlang局域网内节点通信——艰难四步曲 (转)
- Codeforces Round #Pi (Div. 2) B. Berland National Library 模拟
- 【Spark学习】Apache Spark调优
- VS Code调试.NET Core
- EasyUI Combobox 默认设置
- Spring Boot 小技巧
- ElasticSearch - query vs filter
- Wannafly挑战赛19 B矩阵
- string+和stringbuffer的速度比较
- k8s 实验过程中遇到的两个小问题 端口 和 批量删除Error的pods
- 关于封装Dll为Web Service技术方案的讨论