【发布时间】:2014-07-03 22:01:15
【问题描述】:
我想“重命名”我班级的一些成员ofVec4f。
我知道在严格的 C++ 中这是不可能的,但我可以创建一个继承自我的类的新类并声明新成员,这些新成员是原始成员的别名或指针吗?
我尝试了以下方法:
class ofVec4fGraph : public ofVec4f {
public :
float& minX;
float& maxX;
float& minY;
float& maxY;
ofVec4fGraph(float _minX,float _maxX, float _minY, float _maxY )
: minX(_minX), maxX(_maxX), minY(_minY), maxY(_maxY)
{ ofVec4f(_minX, _maxX, _minY, _maxY); };
};
【问题讨论】:
-
你应该在初始化列表中调用基础构造函数:...
) : ofVec4f(_minX, _maxX, _minY, _maxY),... -
括号里的地方做错了吗?
-
在 Java 中可以,但在 C++ 中,您的代码只是在堆栈上创建类型为 Vec4f 的临时值。
-
很好的解释 ;-)
-
请注意,每个引用将占用
sizeof(float*)更多字节,访问它们将需要取消引用指针。如果可能,考虑使用成员函数 - 没有性能损失,编译器足够聪明,可以内联函数。
标签: c++ class inheritance rename alias