C自动转换

前端之家收集整理的这篇文章主要介绍了C自动转换前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
对于两个不相关的类“A类”和“B类”
和一个功能
B convert(const A&);

有没有办法告诉C自动,对于任何以“B类”作为参数的函数,自动转换“A类”.

谢谢!

解决方法

在这种情况下你通常会做的是给B一个带A的构造函数
class B
{
public:
    B(const A&);
};

并在那里进行转换.编译器会说“我如何制作一个B?哦,我看到B可以用A构建”.

另一种方法是使用转换运算符:

class A
{
public:
    operator B(void) const; 
}

并且编译器会说“我怎样才能使A成为B?哦,我看到A可以转换为B”.

请记住,这些很容易被滥用.确保这两种类型隐式转换为彼此确实有意义.

猜你在找的C&C++相关文章