现在位置: 首页 > c++
2012-10-22 23:24 工业·编程 ⁄ 共 1109字 暂无评论
try包含你要防护的代码 ,称为防护块. 防护块如果出现异常,会自动生成异常对象并抛出. catch捕捉特定的异常,并在其中进行适当处理. throw可以直接抛出/产生异常,导致控制流程转到catch块. 重要观点: C++中异常是用对象来表示的,称为异常对象. 基本格式: try {  your code; }      catch(T1 t1)//T1可以是任意类型,int,char, CException... { //T1指定了你要捕捉的异常的类型,t1指定了异常对象的名称...
阅读全文
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(),则...
阅读全文
基类指针可以指向基类对象;     派生类指针可以指向派生类对象;     基类指针可以指向派生类对象(无需强制转换),但只能引用基类中有的成员;     派生类指针指向基类对象,会引发语法错误。但派生类指针通过强制转换可指向基类对象。可是该动作很危险:若引用对象中不村在的派生类成员,会得到错误的结果。
阅读全文
2012-09-13 21:54 工业·编程 ⁄ 共 1839字 暂无评论
当把一个派生类对象赋给一个基类对象时,会发生对象切割。(另外用基类对象强制转换派生类对象也会) 对象切割会发生什么呢? #include <iostream>  using namespace std;  class CShape  {  public:      CShape ()      {          m_color=0;      }        &...
阅读全文
2012-09-13 21:53 工业·编程 ⁄ 共 1939字 暂无评论
引用(reference)是c++的初学者比较容易迷惑的概念。下面我们比较详细地讨论引用。 一、引用的概念 引用引入了对象的一个同义词。定义引用的表示方法与定义指针相似,只是用&代替了*。 例如: Point pt1(10,10); Point &pt2=pt1; 定义了pt2为pt1的引用。通过这样的定义,pt1和pt2表示同一对象。 需要特别强调的是引用并不产生对象的副本,仅仅是对象的同义词。因此,当下面的语句执...
阅读全文
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个数字。 在实际使用过程种有什么区别呢? 主要是符号位,但是在普通的赋值,读...
阅读全文
拷贝构造函数: 以一个对象的内容去初始化另个对象。 (关键在于初始化) 有三种情况下会调用拷贝构造函数 class x {……}; (1)X x;  X xx=x     //不是赋值操作而是拷贝构造函数 (2)void foo (X x);    // 对象参数 (3)FooBar() { X x; return x;}  // 返回对象 如果类没有提供显示的拷贝构造函数,编译器采用的是位逐次拷贝。也就是把对象数据成员值拷贝到另个对象...
阅读全文
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++中真正的临时对象是看不见的,它们不出现在我...
阅读全文
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的真正用途用在指针上,他...
阅读全文
2012-09-01 18:08 工业·编程 ⁄ 共 5944字 暂无评论
  关于C++中异常的争论何其多也,但往往是一些不合事实的误解。异常曾经是一个难以用好的语言特性,幸运的是,随着C++社区经验的积累,今天我们已经有足够的知识轻松编写异常安全的代码了,而且编写异常安全的代码一般也不会对性能造成影响。     使用异常还是返回错误码?这是个争论不休的话题。大家一定听说过这样的说法:只有在真正异常的时候,才使用异常。那什么是“真正异常的时候”?在回答这个问题以...
阅读全文