深入理解C++方法重载、内联与高级用法( 三 )


export class Spreadsheet {public:Spreadsheet(size_t width = 100, size_t height = 100);// 省略了一些内容以保持简洁};Spreadsheet构造函数的实现保持不变 。请注意 , 你只在方法声明中指定默认参数,而不是在定义中指定 。现在,尽管只有一个非复制构造函数 , 你仍然可以使用零个、一个或两个参数调用Spreadsheet构造函数:
Spreadsheet s1;Spreadsheet s2 { 5 };Spreadsheet s3 { 5, 6 };一个为所有参数提供默认值的构造函数可以作为默认构造函数 。也就是说,你可以在不指定任何参数的情况下构造该类的对象 。如果你尝试同时声明一个默认构造函数和一个为所有参数提供默认值的多参数构造函数 , 编译器会报错,因为如果你不指定任何参数,它不知道该调用哪个构造函数 。

【深入理解C++方法重载、内联与高级用法】


推荐阅读