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) |