8.5.4 构造函数允许按参数默认方式调用

    代码8.5中的构造函数可以作如下定义。


    point(int x=0,int y=0) { cout<<"对象创建时构造函数被自动调用"<<endl; xPos=x; yPos=y; }此时,允许在创建对象时默认参数,下列声明语句都是合法的。 point pt; point pt(3); point pt(3,4);

    正如在第6章函数重载一节中的讲述,重载和参数默认的关系应处理好,重载经常用在参数类型不一致时,如果仅仅是参数个数不一致,推荐使用参数默认方式。如此看来,代码8.6似乎并不科学,但该代码的目的是为了说明构造函数可重载。

    说明

    避免重载或参数默认调用不当带来的问题,否则编译器无法判断究竟应当调用哪个构造函数,提示出错。