【发布时间】:2014-08-30 20:14:08
【问题描述】:
我有这门课:
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 方法,它的参数似乎没有任何类型。
【问题讨论】:
-
如果你在 C++ 的任何接口中暴露了
void *,那就是设计存在问题的一个大迹象。
标签: c++ pointers operator-keyword