Chinaunix首页 | 论坛 | 博客
  • 博客访问: 175098
  • 博文数量: 65
  • 博客积分: 1790
  • 博客等级: 上尉
  • 技术积分: 460
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-21 23:51
文章分类
文章存档

2012年(8)

2011年(38)

2010年(19)

分类: C/C++

2011-02-24 23:50:05

1,C++中的指针

C++是一种类型要求更强的语言,不允许随便把一个类型的指针指派给另一个类型。

2,C++中的引用

引用,就像自动被编译器逆向引用的常量型指针。使用引用的规则:

a,必须初始化

b,一旦一个引用被初始化为指向一个对象,就不能被改变为对另一个对象的引用。

c,不可能有NULL引用。必须确保引用和一块合法的存储单元关联。

3,函数中的引用

函数参数中使用常量引用特别重要。因为函数也许会接受临时的对象(函数返回值或使用者显示创立的),临时对象总是不变的。

C++中的指针引用

void increment(int*& i){i++;}

int* i=0;

increment(i);//运行后,指针i的值加4,指针i指向的值未变,都是常量0

4,拷贝构造函数

拷贝构造函数采用相同类型的对象引用为参数,从现有的类创建新类,当用传值方式传递或返回一个对象时,编译器自动调用这个拷贝构造函数。

howmany2 f(howmany2 x){

  print(x);

  return x;

}

main(){

  howmany2 h("2");//调用howmany2构造函数

  howmany2 h2=f(h);//参数传值,调用howmany2拷贝构造,生成新的对象tmp,用于函数f()内计算。返回值时,拷贝构造一个新的对象,返回该对象的引用,作为h2对象。同时销毁tmp对象。

  f(h);//返回新拷贝构造对象returntmp时,由于f()返回值未被使用,直接销毁returntmp对象

}

阅读(828) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~