构造函数是一个特殊的操作符
假如我们有两个类point 和 Cpoint
现在我们需要用类point去构造Cpoint对象,一般实现方式是在Cpoint中定义如下构造:
Cpoint(point);
但有些情况下,这个构造是无法定义的:
- 用point的私有成员给Cpoint赋值(可以添加get方法解决),point没有定义Cpoint为友元类;
- 没有权限修改Cpoint,只能修改point;
这里我们可以在point重载Cpoint的构造函数:
1 | /* |
重载后,在需要point构造Cpoint时都会隐式的调用point中的重载构造函数
1 | point p1; |
完整测试源代码:
1 |
|