c/c++语言
新年华
这个作者很懒,什么都没留下…
展开
-
C++多态虚函数表详解(多重继承、多继承情况)
转发C++多态虚函数表详解(多重继承、多继承情况)_青城山小和尚-CSDN博客_多继承虚函数表转载 2021-12-14 11:23:28 · 108 阅读 · 0 评论 -
static静态变量初始化顺序不确定引起的问题。
我们知道静态变量在函数执行时会进行初始化,那么不同文件中定义的静态变量都要进行初始化,这些不同变量的初始化顺序是什么?答案是不确定的。例如:a.h中static const std::string msg = "hello";class Manager {pubic : static Manager& Instance() { static Manager manager; return man...原创 2021-11-26 23:31:11 · 720 阅读 · 1 评论 -
c++指针传递常见问题
我们知道,通过swap函数交换两个变量的值的时候,需要进行引用传递:void swap(int& a, int& b) { int temp = a; a = b; b = temp;}当通过函数给指针赋值的时候,不能传递指针本身,需要传递指针的指针或者引用,否则函数调用后,实际上指针不会赋值例如:static int a = 100;void fun(int * ptr) { ptr = &...原创 2021-11-25 23:43:10 · 733 阅读 · 0 评论 -
临时变量地址赋值给智能指针引起的问题
今天使用智能指针的时候,在函数中遇到一个问题,关于内存释放的问题,如下void fun() { }原创 2021-11-24 23:15:10 · 464 阅读 · 0 评论 -
c++宏定义和#,##以及宏定义中的双引号““
c++ 宏定义的时候,会用到#和##,1.#:将宏定义中的符号转换成字符串,例如宏定义#define RegisterTest(featue,name) \std::cout << #featue<< ":"<< #name<< std::endl;调用RegisterTest(a, b)结果输出a:b2.##:拼接多个宏的符号,例如宏定义#define RegisterTest(featue,name) \i.原创 2021-11-23 23:23:51 · 3122 阅读 · 0 评论 -
线程安全队列和多任务同步
上回说到如果有一个请求,分成了很多互不干扰的task,放入了队列里,那么该请求的这些task怎么做同步呢?需要一个同步机制,直接上代码;class Notification {public: Notification() = default; ~Notification() { } int32_t init() { if (init_) return 0; event_fd_ = eventfd(0,0); ...原创 2021-11-22 00:05:58 · 217 阅读 · 0 评论 -
线程安全队列和多任务同步
线程安全队列,多线程,线程池原创 2021-11-21 23:36:42 · 543 阅读 · 0 评论