原来c++里竟然有函数有返回值但是不要求写返回类型的函数 就是c++转换函数
class B{
public:
B(int b=0):a(b){}
operator double(){ return a;} //转换函数 当编译器觉得该类型该变成double时调用
//隐性转换
private:
int a;
};
RAII类 中如果不实现get()函数的显示转换成原始指针其实可以用转换函数进行隐式转换 但是不安全 还是get用的好 隐式转换如下:
template <typename T>
class A{
public:
A(T* m=NULL):p(m){}
operator T*()const { return p;} //将RAII 类隐式转换成原始指针 转换函数还
//没有返回类型
~A(){delete p;}
private:
T* p ;
};
int main() {
A<int> p(new int(3));
int *m=NULL;
m=p;
std::cout<<*m;
return 0;
}