通过继承C ++中的类来重命名类成员 [英] Rename class members by inheriting class in C++

查看:135
本文介绍了通过继承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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆