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毫秒