gpt4 book ai didi

c++ - 如何通用地编写隐藏结构的属性? (C++ 的设计/实现)

转载 作者:行者123 更新时间:2023-11-30 04:17:24 25 4
gpt4 key购买 nike

假设我有以下模板。

template<typename T>
class MyClass
{
public:
.............
private:
T _data;
}

当我使用它时,T 始终是一个结构(仅数据)。例如,

struct ST1{
int a;
int b;
};
struct ST2{
int a1;
int b1;
int c1;
}

对于 MyClass 的特定实例,例如 MyClass<struct ST1> myinstance , 我想访问 myinstance.data.amyinstance.data.b .我能想到的一种通用方法是在 MyClass 中定义方法,例如

void MyClass::write(T const &){ _data = T;}
T MyClass::read(){return _data;}

但问题是对于每次读写,我都需要创建一个结构实例,即使我只访问了 _data 的一小部分。 .

谢谢

最佳答案

怎么样...

const T& MyClass::GetData() const { return _data; }
T& MyClass::GetData() { return _data; }

然后你就可以...

myClass.GetData().a = 17;

您也可以只公开_data

关于c++ - 如何通用地编写隐藏结构的属性? (C++ 的设计/实现),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17094400/

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