C/C++
arag2009
这个作者很懒,什么都没留下…
展开
-
C++ explicit关键字详解
首先, C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的, 跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数默认情况下即声明为implicit(隐式).那么显示声明的构造函数和隐式声明的有什么区别呢? 我们来看下面的例子:class CxString // 没有使用explic转载 2017-08-28 15:13:56 · 183 阅读 · 0 评论 -
C语言中的volatile
volatilevolatile是一个类型修饰符(type specifier),就像大家更熟悉的const一样,它是被设计用来修饰被不同线程访问和修改的变量。volatile的作用是作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。作用简单地说就是防止编译器对代码进转载 2017-10-14 10:01:42 · 248 阅读 · 0 评论 -
浅拷贝和深拷贝的区别
拷贝构造函数,是一种特殊的构造函数,它由编译器调用来完成一些基于同一类的其他对象的构建及初始化。其唯一的参数(对象的引用)是不可变的(const类型)。此函数经常用在函数调用时用户定义类型的值传递及返回。拷贝构造函数要调用基类的拷贝构造函数和成员函数。如果在类中没有显式地声明一个拷贝构造函数,那么,编译器将会自动生成一个默认的拷贝构造函数,该构造函数完成对象之间的浅拷贝。那么什么是深拷贝呢?如果一个类拥有资源,当这个类的对象发生复制过程的时候,资源重新分配,这个过程就是深拷贝,反之,没有重新分配资源,就是转载 2017-10-27 13:58:11 · 243 阅读 · 0 评论 -
C++ auto_ptr智能指针的用法
C++中指针申请和释放内存通常采用的方式是new和delete。然而标准C++中还有一个强大的模版类就是auto_ptr,它可以在你不用的时候自动帮你释放内存。下面简单说一下用法用法一: std::auto_ptrm_example(new MyClass()); 用法二: std::auto_ptrm_example; m_example.reset(new M转载 2017-10-27 14:31:45 · 211 阅读 · 0 评论