gpt4 book ai didi

c++ - C++中通过继承类重命名类成员

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:21:29 25 4
gpt4 key购买 nike

我想“重命名”我类(class) ofVec4f 的一些成员。

我知道这在严格的 C++ 中是不可能的,但我可以创建一个继承 self 的类的新类并声明新成员,这些新成员是原始成员的别名或指针吗?

我尝试了以下方法:

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); };

};

最佳答案

我想这可能就是你想要的。

#include <iostream>

class CBase
{
public:
CBase() : a(0), b(0), c(0) {}
CBase(int aa, int bb, int cc) : a(aa), b(bb), c(cc) {}
int a, b, c;
};

class CInterface
{
public:
CInterface(CBase &b)
: base(b), x(b.a), y(b.b), z(b.c)
{
}
int &x, &y, &z;
private:
CBase &base;
};

int main()
{
CBase base(1, 2, 3);
CInterface iface(base);

std::cout << iface.x << ' ' << iface.y << ' ' << iface.z << std::endl;
std::cout << base.a << ' ' << base.b << ' ' << base.c << std::endl;

iface.x = 99;
base.c = 88;

std::cout << iface.x << ' ' << iface.y << ' ' << iface.z << std::endl;
std::cout << base.a << ' ' << base.b << ' ' << base.c << std::endl;

return 0;
}

关于c++ - C++中通过继承类重命名类成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23678523/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com