通过继承C ++中的类来重命名类成员 [英] Rename class members by inheriting class in C++
本文介绍了通过继承C ++中的类来重命名类成员的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想重命名我班的某些成员
I would like to "rename" some members of my class ofVec4f
.
我知道这是不可能的严格的C ++语言,但是我可以创建一个继承自我的类的新类,并声明新成员的别名或指向原始成员的指针吗?
I know it's impossible in strict C++ but could I create a new class that inherits from my class and declare new members which are aliases or pointers to the original members?
我尝试了以下操作:
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); };
};
推荐答案
您的课程应该是:
class ofVec4fGraph : public ofVec4f {
public :
float& minX;
float& maxX;
float& minY;
float& maxY;
ofVec4fGraph(float _minX,float _maxX, float _minY, float _maxY )
: ofVec4f(_minX, _maxX, _minY, _maxY), minX(x), maxX(y), minY(z), maxY(w)
{};
};
构造函数链接在 C ++
。您可以使用初始化程序列表来初始化基类。
Constructor chaining is not possible in C++
. You use initializer list to initialize base class.
您现在可以将其用作:
ofVec4fGraph obj;
fun1(obj.x, obj.y);
fun2(obj.maxX, obj.minY);
这篇关于通过继承C ++中的类来重命名类成员的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文