- 博客(9)
- 资源 (1)
- 收藏
- 关注
原创 c++ 双冒号和单冒号的区别
双冒号域操作符声明了一个类A,在类A中声明一个成员函数void foo(),但没有在类A的声明中给出函数foo的定义,那么在类外定义foo时,就要写成下面这样,表示foo()函数是类A的成员函数。void A::foo()引用成员函数和变量System::Math::Sqrt()单冒号构造函数初始化列表struct foo{ foo() ...
2020-03-28 23:46:49 705
原创 c++11 emplace_back和push_back
有移动构造函数#include <iostream>#include <cstring>#include <vector>using namespace std; class A {public: A(int i){ str = to_string(i); cout << "构造函数" <&...
2020-03-14 00:36:09 277
原创 const在c++中的作用
const一个变量加上const修饰后,就变成了只读变量(不等于常量),一般不可以被修改。比如:const int *p和int const *p两条语句等价,const修饰 *p,即 *p不可被修改, p可以被修改。const与宏常量的区别const常量有数据类型,宏常量没有数据类型,所以没有类型的检查,是不安全的;const可以进行调试,宏不可以调试,无法检查错误。const...
2020-03-12 19:51:56 1939 1
原创 static在c++中的作用
在C中的作用静态全局变量/静态函数存储在静态存储区,生命周期直到程序结束在声明它的整个文件都是可见的,而在文件之外是不可见的,其它文件中可以定义相同名字的变量,不会发生冲突;静态局部变量存储在静态存储区,生命周期直到程序结束静态局部变量在程序执行到该对象的声明处时被首次初始化,即以后的函数调用不再进行初始化;如果没有显式初始化,会被程序自动初始化为0(普通的局部变量必须显示初始化.........
2020-03-12 19:20:41 644
原创 C++类对象创建过程
分配空间(Allocation)创建C++类对象的第一步就是为其分配内存空间。对于全局对象,静态对象以及分配在栈区域内的对象,对它们的内存分配是在编译阶段就完成了,而对于分配在堆区域内的对象,它们的分配是在运行是动态进行的。内存空间的分配过程涉及到两个关键的问题:需要分配空间的大小,即类对象的大小。这么问题对于编译器来说并不是什么问题,因为类对象的大小就是由它决定的,对于要分配多少内存,它最清楚...
2020-03-12 13:16:08 1064
原创 vim配置
配置文件在vimrc里执行:set paste, 再粘贴以下内容"common conf {{ 通用配置filetype on "文件类型自动检测syntax on "关键字高亮syntax enable "语法高亮set no...
2020-03-11 21:18:43 134
原创 c++实现单例模式
懒汉:class single{ private: single() {} static single* s; public: get_instance();};single* single::s == NULL;single* single::get_instance(){ if (s == NULL) { ...
2020-03-11 19:07:21 191
原创 非root用户安装ctags
1、下载ctags安装包2、进入catgs文件目录,执行如下命令 ./configure --prefix=$HOME/.local3、编译和安装 make && make install备注:加入我当前的家目录是/home的话,需要执行ctags时需/home/.local/bin/ctags -R *4.配置环境变量vim ~/.bash_profile...
2020-03-11 11:48:10 911
原创 std::unique_lock与std::lock_guard区别
使用方式lock_guard:通过构造函数和析构函数控制锁的作用范围,创造对象的时候加锁,离开作用域的时候解锁;std::mutex m_mutex;void print(int cnt){ std::lock_guard<mutex> lock(m_mutex); cout << std::this_thread::get_id() <<...
2020-03-04 12:07:14 4940
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人