摘要: 总结了下,析构函数的调用情况分以下几类:1.对象生命周期结束,自动销毁;(如对象作为参数进行函数值传递)2.delete指向对象的指针,或者delete指向基类的指针,且基类的析构函数是虚函数;3.当类中包含其他类成员,当该类的析构函数调用时,成员对应的类的析构函数也会被调用。 阅读全文
posted @ 2015-11-01 23:16 Socrate.hj 阅读(1819) 评论(0) 推荐(0) 编辑
摘要: 此方法通过指针方式插入对象,释放时调用对象delete。#include#include#includeusing namespace std;templateclass Stack{private: struct Link { T* data; Link* next; Link(T* da,... 阅读全文
posted @ 2015-11-01 22:59 Socrate.hj 阅读(253) 评论(0) 推荐(0) 编辑
摘要: #include#includeint main(){ std::string str1 = "Hello"; std::string str2 = str1; printf("str1:%x\n",str1.c_str()); printf("str2:%x\n",str2.c_str()); s... 阅读全文
posted @ 2015-11-01 15:27 Socrate.hj 阅读(785) 评论(0) 推荐(0) 编辑
摘要: 1.首先认识左值和右值的定义: 左值:表达式可以引用到一个对象,并且这个对象是一块内存空间并可以检测和存储,这个表示即是左值。 右值:直接引用了一个存储在内存地址中的数据。右值最大限度只能被一个常量引用:const int &a = 1;规则:临时变量是右值,且可以改变:T().set().ge... 阅读全文
posted @ 2015-11-01 14:20 Socrate.hj 阅读(897) 评论(0) 推荐(0) 编辑