Chinaunix首页 | 论坛 | 博客
  • 博客访问: 129132
  • 博文数量: 19
  • 博客积分: 508
  • 博客等级: 下士
  • 技术积分: 306
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-11 21:04
文章分类

全部博文(19)

文章存档

2011年(16)

2009年(3)

我的朋友

分类: C/C++

2011-12-26 15:42:08

1. 引用和非引用是否可以作为函数重载的依据?
可以。只要使用函数时不产生二义性,是合法的。但是这是个很不好的重载,因为及其容易造成二义性,导致编译器报错。
定义:
swap(int a, int b) / swap(int &a, int &b)
调用方式:
int a, b;
swap(a, b); //compile error, ambiguous
 
int &_a = a, &_b = b; //same as above

swap(1, 2) //OK. since the reference must be an object not constant.

2.C++中调用new和malloc的区别
构造函数是否调用。

3. 无参构造函数
若定义了无参构造函数,则以下形式创建类实例有效:

classX x;//OK
classX x(); //wrong, without ()

4. 如何初始化类中的引用成员?或者const成员?
使用初始化列表。

private:
 int &i;

classX::classX(): i(j) {
.....
}

5.C++中的static成员应该在类外初始化,其原因是,类似全局变量,带有初始化式的将被认定为定义,因此若在类内定义,会造成多重定义。而在Java中没有这类问题。

6. const 关键字
const关键字的要点如下:
const对象只能调用类中的const成员,而非const对象可以调用任意
const对象必须初始化,不能赋值,所以在构造函数中应该使用初始化列表
const成员函数若要返回*this,必须返回const引用类型
阅读(3071) | 评论(0) | 转发(0) |
0

上一篇:Linux Pthread 深入解析

下一篇:没有了

给主人留下些什么吧!~~