对于两个不相关的类"A类"和"B类"和一个函数
B convert(const A&);
Run Code Online (Sandbox Code Playgroud)
有没有办法告诉C++自动,对于任何以"B类"作为参数的函数,自动转换"A类".
谢谢!
GMa*_*ckG 10
在这种情况下你通常会做的是给B一个构造函数,它接受A:
class B
{
public:
B(const A&);
};
Run Code Online (Sandbox Code Playgroud)
并在那里进行转换.编译器会说"我怎么能做A一个B?哦,我看到B可以构造一个A".
另一种方法是使用转换运算符:
class A
{
public:
operator B(void) const;
}
Run Code Online (Sandbox Code Playgroud)
编译器会说:"我怎样才能让A一个B?哦,我看A可以转换为B".
请记住,这些很容易被滥用.确保这两种类型隐式转换为彼此确实有意义.