};
我们需要使其中的data在被赋值时使用类似java中的set()来完成一些检查
和转换工作,是不是可以利用类的类型自动转换功能呢?即,添加一些构造函数。
可不可以这样书写类TypeName:
class TypeName
{
public:
Data property ;
TypeName(TypeName data)
{
....
Set(data) ;
}
TypeName() ;
.... //other construction functions.
private:
void Set(TypeName data)
{
//code for check data.property.
}
};
这样,当用如下代码对TypeName类型进行设置时,就会隐式调用合适的构造函数
完成检查工作:
//---------------
TypeName data = new TypeName() ;
data = data2 ; //data2 is object of TypeName. 隐式调用了
//构造函数 TypeName(TypeName)
//---------------
例如定义一个年龄
class CAge{
public:
int age ;
CAge(CAge ageData)
{
Set(ageData) ;
}
CAge(){}