
C++
文章平均质量分 80
IT_Linux
Linux world
展开
-
boost智能指针之shared_ptr和weak_ptr
std::auto_ptr很多的时候并不能满足我们的要求,比如auto_ptr不能用作STL容器的元素。boost的smart_ptr中提供了4种智能指针和2种智能指针数组来作为std::auto_ptr的补充。 shared_ptr:使用shared_ptr进行对象的生存期自动管理,使得分享资源所有权变得有效且安全.weak_ptr:weak_ptr 是 shared_ptr 的观察员原创 2015-01-29 09:09:07 · 5751 阅读 · 1 评论 -
C++ 访问权限
当private,public,protected单纯的作为一个类中的成员权限设置时:private: 只能由该类中的函数、其友元函数访问,不能被任何其他访问,该类的对象也不能访问. protected: 可以被该类中的函数、子类的函数、以及其友元函数访问,但不能被该类的对象访问public: 可以被该类中的函数、子类的函数、其友元函数访问,也可以由该类的对象访问注:友元函转载 2012-11-15 09:11:43 · 960 阅读 · 0 评论 -
操作符重载之解引用与箭头操作符
箭头操作符与众不同。它可能表现得像二元操作符一样:接受一个对象和一个成员名,对对象解引用以获取成员。不管外表如何,箭头操作符不接受显式形参。这里没有第二个形参,因为 -> 的右操作数不是表达式,相反,是对应着类成员的一个标识符。没有明显可行的途径将一个标识符作为形参传递给函数,相反,由编译器处理获取成员的工作。理解1当这样编写时:point->action();由于优先级规则,它实际等原创 2015-01-13 18:02:17 · 2555 阅读 · 0 评论 -
RTTI和类型转换
RTTI通过运行时类型识别(RTTI),程序能够使用基类的指针或引用来检索这些指针或引用所指对象的实际派生类型。通过下面两个操作符提供 RTTI:1. typeid 操作符,返回指针或引用所指对象的实际类型。2. dynamic_cast 操作符,将基类类型的指针或引用安全地转换为派生类型的指针或引用。这些操作符只为带有一个或多个虚函数的类返回动态类型信息,对于原创 2015-01-13 18:06:08 · 1203 阅读 · 0 评论 -
C++智能指针之auto_ptr
1. auto_ptrauto_ptr 是C++标准库提供的类模板,auto_ptr对象通过初始化指向由new创建的动态内存,它是这块内存的拥有者,一块内存不能同时被分给两个拥有者。当auto_ptr对象生命周期结束时,其析构函数会将auto_ptr对象拥有的动态内存自动释放。即使发生异常,通过异常的栈展开过程也能将动态内存释放。auto_ptr不支持new 数组。2. auto_原创 2015-01-14 09:33:31 · 1207 阅读 · 1 评论 -
boost.any实现任意类型存储
当你需要一个可变的类型时,有三种可能的解决方案:无限制的类型,如 void*. 这种方法不可能是类型安全的,应该象逃避灾难一样避免它。可变的类型,即支持多种类型的存储和获取的类型。支持转换的类型,如字符串类型与整数类型之间的转换。Any实现了第二种方案,一个基于值的可变化的类型,无限可能的类型。这个库通常用于把不同类型的东西存储到标准库的容器中。Any 库如何改进你的程序任原创 2015-01-16 11:23:59 · 3854 阅读 · 1 评论