C++语法
freshXD
爱是势均力敌
展开
-
c++删除指针(一)
在本地调试树形结构时,常常需要释放一棵树里全部指针所占的空间,这一步不需要了解树的具体结构;我认为最简单通用的方法就是用广度优先周游的方法将树中的非空节点依次删除;但这里由于指针操作的复杂性,写出来的代码常常出现以下两种情况:1.传递的是指针的值而非指针本身,从而没有释放想释放的空间 2.删除过程中出现了runtime error,即访问了不能访问的空间(如悬垂指针or 系统自留地址)原创 2014-02-14 20:43:20 · 2746 阅读 · 0 评论 -
C++中的匿名对象
C++中的匿名对象是pure RValue, 因而不能作为引用传进去。匿名对象只存在于构造该对象的那行代码,离开构造匿名对象的哪行代码后立即调用析构函数。class Some { int n; public: Some(int s){n=s;} ~Some(){ cout<< "destroy\n"; } int ret(){return转载 2016-06-07 16:22:42 · 22571 阅读 · 3 评论 -
C++类型转换
dynamic_cast: 通常在基类与派生类之间转换时使用; run_time cast; 运行时检查这个转换是否可能; 完成类层次结构的提升;T必须是一个指针、引用或者无类型的指针;a必须是决定一个指针或者引用的表达式;dynamic_cast仅能应用于指针或者引用,不支持内置数据类型; 转换失败时返回NULL const_cast: 主要针对const和volatile的转换 stat原创 2016-06-01 15:32:30 · 334 阅读 · 0 评论 -
C++ STL
仿函数又称为函数对象 仿函数与函数指针: 1. 函数指针不满足stl对抽象性的要求 2. 函数指针无法与stl的其他组建搭配原创 2016-06-01 15:12:10 · 322 阅读 · 0 评论 -
C++转移构造函数与转移赋值函数
C++临时对象的定义: 当且仅当离开一段上下文(context)时在对象上执行的仅有的操作是析构函数时,一个对象被看成是临时的。这里上下文可能是一个表达式,也可能是一个语句范围,例如函数体。原创 2016-05-31 23:59:22 · 2919 阅读 · 0 评论 -
C++ 类 自定义迭代器
原来迭代器也是一种模式啊…原创 2016-05-08 11:17:35 · 1239 阅读 · 0 评论 -
C++ explicit关键字
explicit用于构造函数 有效的防止构造函数的饮食转换带来的错误或者误解翻译 2016-05-08 09:08:03 · 267 阅读 · 0 评论 -
C++虚函数
虚函数:面向对象编程实现多态的基本手段翻译 2016-05-08 09:03:01 · 307 阅读 · 0 评论 -
C++ 运算符重载
为什么要运算符重载? 运算符重载是语法糖的一种形式,避免复杂的函数调用原创 2016-05-06 13:53:52 · 242 阅读 · 0 评论 -
C++常量指针与指针常量
常量指针:所指向地址上的数据是常量,所指向的数据不能变化,但是指向的地址可以变化 指针常量:所指向的地址是常量,而地址上的数据可以变化原创 2016-05-06 13:52:25 · 193 阅读 · 0 评论 -
C++ 复制构造和赋值的区别
还是三年前程序设计课上学的,晚上好好回忆一下原创 2016-05-06 13:47:43 · 324 阅读 · 0 评论 -
Effective C++ 阅读笔记
terms abstract abstraction access access level access function adapter address-of operator aggregation function binary operator 二元操作符 binding 绑定 bitwise 以位为单位逐…原创 2015-04-17 19:50:37 · 351 阅读 · 0 评论 -
c++ 写码语法
1.定义两个指针int*p1, *p2;而不是int *p1, p2;那么vector呢vector<int> v1, v2;是定义了两个vector<int>么 是的~原创 2015-03-27 17:07:05 · 461 阅读 · 0 评论 -
C++ 模版函数
从一个简单的模板函数实例说起/*implement strcmp-like generic compare function returns 0 if the values are equal, 1 if v1 is larger, -1 if v1 is smaller*/template <typename T> /*模版形参表*/int compare(const T &v1, con原创 2015-03-17 10:46:59 · 394 阅读 · 0 评论 -
C++继承
公用,私有和受保护的继承派生类可以定义0个或多个访问标号。 class classname:access-label class1[,access-label class2] { ... };对类所继承的成员的访问由基类中的成员访问级别和派生类的**类派生列表**的访问标号共同控制。每个类可以控制它所定义的成员的访问。一个类可以加强但不能放松对所继承的成员的访问。i原创 2015-03-17 00:27:26 · 488 阅读 · 0 评论 -
C++面向对象编程
多态C++中的多态一般体现在 **继承** 这个机制中。+ 派生类可以定义更多的成员+ 派生类可以重写函数动态绑定何时发生动态绑定在C++中,通过基类的引用(or指针)调用虚函数时,发生动态绑定。用引用(or指针)调用的虚函数在运行时确定,被调用的函数是引用(or指针)所指的实际对象定义的。 有关虚函数的定义 C++的成员函数默认为非虚函数,对非虚函数的调用在编译时确定,除了构造函数外,原创 2015-03-16 22:41:46 · 380 阅读 · 0 评论 -
欢迎使用CSDN-markdown编辑器
析构函数何时调用析构函数当对象超过其生命周期时,会自动调用析构函数撤销一个容器(标准库容器or内置数组)时,会运行容器中的类类型元素的析构函数,且总是逆序撤销 何时编写析构函数若类需要析构函数,那么它也需要赋值操作符or复制构造函数复制构造函数撤销成员的顺序 总是按照类中声明次序的逆序撤销成员何时执行合成析构函数 即使自己定义了析构函数,也会运行合成析构函数;且在用户自定义的析构函数运行原创 2015-03-16 20:04:46 · 345 阅读 · 0 评论 -
C++模板类继承中的Name Lookup
转载自http://www.wuzesheng.com/?p=2244 今天这篇文章说说C++中的模板类继承时的名称(变量/类型)查找(Name Lookup)。普通的继承关系中的Name Lookup对于熟悉C++的同学来说,都是非常直观的,因此在这里就不再赘言。模板类(Template Class)的继承中,由于模板本身特殊性,使其在Name Lookup时,有着一定的特殊性,我们从一个例子转载 2016-06-03 00:31:49 · 649 阅读 · 0 评论