gpt4 book ai didi

c++ - 结构作为模板类 C++ 的字段

转载 作者:搜寻专家 更新时间:2023-10-31 01:47:25 26 4
gpt4 key购买 nike

我是 C++ 新手。我正在学习如何使用模板。我的目标是可以同时创建“int”和“SpacePlace”PropertyType 对象。下一个代码不起作用,因为方法“GrabCoordinates(...)”的每个字符串中都有错误“C2228”(MSVC 2010)。

struct SpacePlace
{
float x,y,z;
};

template <class SomeType> class PropertyType
{
SomeType variable;

public:
void GrabCoordinates(SpacePlace *obj)
{
variable.x=obj->x;
/*varibale.x is wrong, "left of '.identifier' must
have class/struct/union"*/
variable.y=obj->y;//similiar error
variable.z=obj->z;//similiar error
}
...//some code
};

int main()
{
PropertyType <SpacePlace> coordinates;
PropertyType <int> just_a_number;
...//some code
}

我只是想知道,是否有可能达到我的目标?或者 C++ 模板中的字段应该只是“简单类型”?对不起我的英语 :) 谢谢。

最佳答案

你需要这样:

template <class SomeType> class PropertyType
{
SomeType variable;

public:
void GrabCoordinates(const SomeType& obj)
{
variable=obj;

}
//..some code
};

关于c++ - 结构作为模板类 C++ 的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19166454/

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