1,
class B;
class A
{
public:
A(const B&);//A可以根据B构造出来
};
class B
{
public:
operator A() const; //B可以被转换为A
};
void f(const A&);
B b;
f(b); //错误,模棱两可。
2,还发生在标准转换中。
例:
void f(int);
void f(char);
double d = 6.02;
f(d); //错误,模棱两可。
3,发生于“多重继承”。
class B;
class A
{
public:
A(const B&);//A可以根据B构造出来
};
class B
{
public:
operator A() const; //B可以被转换为A
};
void f(const A&);
B b;
f(b); //错误,模棱两可。
2,还发生在标准转换中。
例:
void f(int);
void f(char);
double d = 6.02;
f(d); //错误,模棱两可。
3,发生于“多重继承”。