可以说我有课
Class rofl {
int a;
float b;
rofl::rofl(int a, float b) {
this->a = a; this->b = b;
}
}
有可能吗
rofl* sup = new rofl(5, 2.0f);
float hello = sup;
这样变量 hello 会得到 sup.b 的值吗?
可以说我有课
Class rofl {
int a;
float b;
rofl::rofl(int a, float b) {
this->a = a; this->b = b;
}
}
有可能吗
rofl* sup = new rofl(5, 2.0f);
float hello = sup;
这样变量 hello 会得到 sup.b 的值吗?
是的,您可以重载类型转换运算符:
class Rofl {
public:
operator float() const { return b; }
...
};
有关演示,请参阅http://ideone.com/Y7UwV 。
但是,请参阅 Scott Meyers 的《更有效的 C++ 》第 5 条,标题为“警惕用户定义的转换操作”。允许与复杂类型进行隐式转换通常会导致各种微妙的拼写错误。
不,如果你说这是不可能的。在您的代码中,sup
is not a rofl
but a ,并且不允许rofl*
创建 a rofl*
to转换。float
此外,您的问题格式不正确:sup.b
不涉及任何内容。
也就是说,您可能不需要动态分配实例,在这种情况下,其他答案是正确的。