// Case 1 : B公有继承自A
class B : public A
{
...
}
// Case 2 : B实现了隐式转化为A的转化
class B
{
operator A();
}
// Case 3 : A实现了non-explicit的参数为B的构造函数
class A
{
A(const B&);
}
// Case 4 : 赋值操作
A & operator=(const A&);
// Case 1 : B公有继承自A
class B : public A
{
...
}
// Case 2 : B实现了隐式转化为A的转化
class B
{
operator A();
}
// Case 3 : A实现了non-explicit的参数为B的构造函数
class A
{
A(const B&);
}
// Case 4 : 赋值操作
A & operator=(const A&);