2012-10-22 23:24
⁄ 工业·编程
⁄ 共 1109字
try包含你要防护的代码 ,称为防护块. 防护块如果出现异常,会自动生成异常对象并抛出.
catch捕捉特定的异常,并在其中进行适当处理.
throw可以直接抛出/产生异常,导致控制流程转到catch块.
重要观点: C++中异常是用对象来表示的,称为异常对象. 基本格式: try { your code; }
catch(T1 t1)//T1可以是任意类型,int,char, CException... { //T1指定了你要捕捉的异常的类型,t1指定了异常对象的名称...
c++, 异常机制阅读全文
2012-10-04 23:19
⁄ 工业·编程
⁄ 共 654字
在一个块作用域或者函数体内的临时变量(非指针),例如 C1 f() { C1 c; return c; } 此时返回值是个临时变量,不是c,而是C1(c)构建的一个临时变量 C1& f() { C1 c; return c; } 此时返回值是一个refernce故非临时变量,是对变量c的一个引用,而由于c的作用域已经结果即c已经消亡,故该reference是未定的一个对象,故此写法不合适 在完面调用时 C1 c=f(),则...
c++阅读全文
2012-09-14 23:28
⁄ 工业·编程
⁄ 共 146字
基类指针可以指向基类对象; 派生类指针可以指向派生类对象; 基类指针可以指向派生类对象(无需强制转换),但只能引用基类中有的成员; 派生类指针指向基类对象,会引发语法错误。但派生类指针通过强制转换可指向基类对象。可是该动作很危险:若引用对象中不村在的派生类成员,会得到错误的结果。
c++阅读全文
2012-09-13 21:54
⁄ 工业·编程
⁄ 共 1839字
当把一个派生类对象赋给一个基类对象时,会发生对象切割。(另外用基类对象强制转换派生类对象也会)
对象切割会发生什么呢?
#include <iostream> using namespace std; class CShape { public: CShape () { m_color=0; } &...
c++阅读全文
2012-09-13 21:53
⁄ 工业·编程
⁄ 共 1939字
引用(reference)是c++的初学者比较容易迷惑的概念。下面我们比较详细地讨论引用。
一、引用的概念
引用引入了对象的一个同义词。定义引用的表示方法与定义指针相似,只是用&代替了*。 例如: Point pt1(10,10); Point &pt2=pt1; 定义了pt2为pt1的引用。通过这样的定义,pt1和pt2表示同一对象。 需要特别强调的是引用并不产生对象的副本,仅仅是对象的同义词。因此,当下面的语句执...
c++阅读全文
2012-09-10 10:47
⁄ 工业·编程
⁄ 共 1048字
在C中,默认的基础数据类型均为signed,现在我们以char为例,说明(signed) char与unsigned char之间的区别
首先在内存中,char与unsigned char没有什么不同,都是一个字节,唯一的区别是,char的最高位为符号位,因此char能表示-128~127, unsigned char没有符号位,因此能表示0~255,这个好理解,8个bit,最多256种情况,因此无论如何都能表示256个数字。
在实际使用过程种有什么区别呢?
主要是符号位,但是在普通的赋值,读...
c++阅读全文
2012-09-06 23:04
⁄ 工业·编程
⁄ 共 1273字
拷贝构造函数: 以一个对象的内容去初始化另个对象。 (关键在于初始化) 有三种情况下会调用拷贝构造函数 class x {……}; (1)X x; X xx=x //不是赋值操作而是拷贝构造函数 (2)void foo (X x); // 对象参数 (3)FooBar() { X x; return x;} // 返回对象
如果类没有提供显示的拷贝构造函数,编译器采用的是位逐次拷贝。也就是把对象数据成员值拷贝到另个对象...
c++, 拷贝构造函数阅读全文
2012-09-03 19:55
⁄ 工业·编程
⁄ 共 2253字
程序员间交谈时,经常把仅仅需要一小段时间的变量称为临时变量。例如在下面这段swap(交换)例程里: template<class T> void swap(T& object1, T& object2) { T temp = object1; object1 = object2; object2 = temp; } 通常把temp叫做临时变量。不过就C++而言,temp根本不是临时变量,它只是一个函数的局部对象。 在C++中真正的临时对象是看不见的,它们不出现在我...
c++阅读全文
2012-09-02 18:48
⁄ 工业·编程
⁄ 共 2313字
1:概述
在C/C++中void类型本意指的是,无类型。就说这个类型,不像int、double那样成为一个可以提供用户正常使用的系统数据类型。如果定义了一个变量如下:
void v;
在Linux中,用gcc编译报错如下:“variable or field 'v' declared void”。
如果定义void类型的指针,如下:
void * p;
在Linux中,用gcc编译,没有问题。
也就是说,void不能用于一般的系统数据类型,但是可以用作指针。其实void的真正用途用在指针上,他...
c++, void阅读全文
2012-09-01 18:08
⁄ 工业·编程
⁄ 共 5944字
关于C++中异常的争论何其多也,但往往是一些不合事实的误解。异常曾经是一个难以用好的语言特性,幸运的是,随着C++社区经验的积累,今天我们已经有足够的知识轻松编写异常安全的代码了,而且编写异常安全的代码一般也不会对性能造成影响。
使用异常还是返回错误码?这是个争论不休的话题。大家一定听说过这样的说法:只有在真正异常的时候,才使用异常。那什么是“真正异常的时候”?在回答这个问题以...
c++阅读全文