gpt4 book ai didi

c++ - 您可以在 C++ 中为方法名称起别名吗?

转载 作者:行者123 更新时间:2023-12-01 14:47:19 24 4
gpt4 key购买 nike

考虑我有一些简单的类(class):

template<typename T>
class Vector {
public:
T first() const { return this->m_first; }
T second() const { return this->m_second; }
private:
T m_first;
T m_second;
}
现在我想在其中一些背后创造一些意义:
typedef Vector<int> Position;
typedef Vector<unsigned int> Dimension;
我还可以为新类型 Position 和 Dimension 的方法创建一个别名,以便对于 Position,x() 引用 frist(),y() 引用 second(),而对于 Dimension,width() 引用 first(),height()引用第二()。
或者更“快速”:拥有第一个和第二个公共(public),为成员变量创建别名?实际用例更复杂,但这应该显示我想要的:两个在内存中非常相似,但根据上下文调用完全不同的东西。

最佳答案

您可以通过执行以下操作来实现您想要的:

class Position : private Vector<int> {  
public:
auto x() const { return first(); }
auto y() const { return second(); }
};

class Dimension : private Vector<unsigned int> {
public:
auto width() const { return first(); }
auto height() const { return second(); }
};
它创建了从 Vector 的特定实例继承的新类型,并使用可公开访问的有意义的名称调用私有(private)继承的成员函数。
这是 demo .

关于c++ - 您可以在 C++ 中为方法名称起别名吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62962892/

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