computer 版 (精华区)
发信人: remember (Learning C++), 信区: program
标 题: 关于提供默认参数的问题
发信站: 听涛站 (2001年11月01日15:57:53 星期四), 站内信件
有人说以下程序可以通过编译:
class Point {
public:
Point() { x=y=0; }
Point(int i=0,int j=0) { x=i; y=j; }
private:
int x,y;
};
void main() {
Point p1(3,4);
}
是,这样可以通过编译,但不代表程序正确,是吧。
因为无参构造时会引发二义性错误:Point p2; 就显然让系统不知道调用哪个函数了
好,你说你会注意到,不会使用无参构造。
那,你写Point()这个函数干什么呢?
何况,有些情况编译器会内部生成一些临时对象,于是就有可能使用无参构造了....
还是不要这样写的好~~~~
另外,默认参数在声明(declaration)和定义(definition)中只能出现一次
正确的做法应该是放在声明中,原因嘛,就是让那些include了头文件的cpp文件
知道可以这样调用函数而不会报错啊~~~
--
洛阳亲友如相问 一片冰心在玉壶
※ 来源:·听涛站 tingtao.dhs.org·[FROM: 匿名天使的家]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:1.124毫秒