被调函数的返回类型决定返回的是左值还是右值,当被调函数的返回类型是 引用 时,返回的是左值,其余情况下返回的是右值,被调函数返回的左值有着与其他左值类型同样的运算特性,需要特别指出的是, 我们能为返回类型是非常量引用的函数的结果赋值 ,但是需要注意的是,进行运算的前提是确保返回的引用是有效的, 返回与局部对象绑定的引用是无效的 ,因为被调函数运行结束时,局部对象的存储空间已经释放,返回与局部对象绑...
分类:
其他好文 时间:
2014-05-26 05:54:15
阅读次数:
225
1,什么是类的拷贝控制
当我们定义一个类的时候,为了让我们定义的类类型像内置类型(char,int,double等)一样好用,我们通常需要考下面几件事:
Q1:用这个类的对象去初始化另一个同类型的对象。
Q2:将这个类的对象赋值给另一个同类型的对象。
Q3:让这个类的对象有生命周期,比如局部对象在代码部结束的时候,需要销毁这个对象。
因此C++就定义了5种拷贝控制操作...
分类:
编程语言 时间:
2014-05-22 09:08:59
阅读次数:
347
1,什么是类的拷贝控制当我们定义一个类的时候,为了让我们定义的类类型像内置类型(char,int,double等)一样好用,我们通常需要考下面几件事:Q1:用这个类的对象去初始化另一个同类型的对象。Q2:将这个类的对象赋值给另一个同类型的对象。Q3:让这个类的对象有生命周期,比如局部对象在代码部结束...
分类:
编程语言 时间:
2014-05-19 16:15:42
阅读次数:
242
1. 异常处理
异常以类似于将实参传递给函数的方式抛出和捕获。异常可以是可传给非引用实参的任意实参的类型,这意味着必须能够复制该类型的对象。
当抛出一个表达式的时候,被抛出对象的静态编译时类型将决定异常对象的类型。
抛出指针通常是个坏主意。
栈展开:沿着嵌套函数调用链继续向上,直到为异常找到一个catch子句。
栈展开期间,释放局部对象所用的内存并运行类类...
分类:
编程语言 时间:
2014-05-09 06:17:46
阅读次数:
528
static局部变量static局部变量确保不迟于在程序执行流程第一次经过该对象的定义语句时进行初始化这种对象一旦被创建,在程序结束前不会被撤销。在该函数被多次调用的过程中,静态局部对象会持续存在并保存它的值。#include#include#includeusing
namespace std;s...
分类:
编程语言 时间:
2014-05-07 14:21:45
阅读次数:
384