【发布时间】:2020-12-29 19:33:26
【问题描述】:
我正在尝试编写一个通用模板方法,该方法使用具有所需成员的对象将一个简单的 Rectangle 呈现到屏幕上。但是,我注意到析构函数不断被调用。现在,这不是什么大问题,但对于我想到的其他模板,它会(例如纹理)。
那么模板是否总是创建作为参数传递的对象的副本?
template<typename T>
void renderRect(T thisObject, int red, int green, int blue, int alpha)
{
SDL_Rect object = { thisObject.x, thisObject.y, thisObject.w, thisObject.h };
SDL_SetRenderDrawColor(this->renderer, red, green, blue, alpha);
SDL_RenderFillRect(this->renderer, &object);
}
【问题讨论】:
-
这与模板无关。
thisObject按值传递,因此被复制。 -
大声笑,我是 cpp 的新手。但我明白,这太基本了(愚蠢):) 感谢您的快速响应:)