1、转换构造函数:将其他类型转换为类类型
2、类型转换运算符重载:将类类型转化为其他类型
代码的demo如下:
#include <iostream>
#include <string>
using namespace std;
class Manager;
class Employee
{
public:
Employee(const string& name,const int age,const int deptno):name_(name),age_(age),deptno_(deptno){}
operator Manager();//转换运算符重载
protected:
private:
string name_;
int age_;
int deptno_;
};
class Manager:public Employee
{
public:
Manager(const string& name,const int age,const int deptno,int level):Employee(name,age,deptno),level_(level){}
//Manager(const Employee& other):Employee(other),level_(1){}//从语法上实现,转换构造函数,但是没有意义
protected:
private:
int level_;
};
Employee::operator Manager(){
return Manager(name_,age_,deptno_,-1);
}
int main(){
Employee e1("asd",12,11);
Manager m1("zhangsan",14,11,11);
m1=e1;
return 0;
}