我有这门课:
class fileUnstructuredView {
private:
void* view;
public:
operator void*() {
return view;
}
};
它可以做到这一点:
void* melon = vldf::fileUnstructuredView();
但它不能这样做:
int* bambi = vldf::fileUnstructuredView();
//or
int* bambi = (int*)vldf::fileUnstructuredView();
相反我必须做
int* bambi = (int*)(void*)vldf::fileUnstructuredView();
或者为 int* 创建另一个显式类型转换运算符。
关键是,我想轻松地将类转换为各种指针类型,包括所有基本类型和一些 pod 结构类型。有没有办法在不为所有这些创建转换运算符的情况下做到这一点?我能想到的最接近我要问的是 ZeroMemory 方法,它的参数似乎不需要任何类型。
最佳答案
是的,你可以有一个转换函数模板。
template <class T>
operator T*() {
return static_cast<T*>(view);
}
关于c++ - 有没有办法为任何指针类型定义转换运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24659851/