我是 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++ 中模板中的字段应该只是“简单类型”?对不起我的英语:) 谢谢。