【发布时间】:2013-03-29 04:30:15
【问题描述】:
好吧,伙计们!
我在这里遇到了一个小问题,为了简单起见,它或多或少是这样的:
window.h
template <ObjectType &x>
class foo { stuff }
游戏.h
class gameclass { ObjectType a; }
main.cpp
gameclass mygame;
foo<mygame.a> fooa;
现在 fooa 失败了,因为它不允许我将 mygame 的成员 'a' 作为模板参数发送。
现在如何将类成员作为模板参数发送?
谢谢
【问题讨论】:
-
这没有意义。模板参数应该是一个type,而不是一个对象。如果您想要
a的type,那么只需执行foo<ObjectType> fooa;。 -
你忘记阅读你的 C++ 书了。
-
@MiguelP:投反对票不是一种粗鲁的方式(或者至少不应该这样使用它们)。如果您将鼠标悬停在 downvote 按钮上,您应该会看到一个工具提示,其中列出了 3 个可能的 downvote 动机:没有研究工作(任何关于模板的书都告诉您您正在尝试做的事情是无意义的),不清楚(并且您的问题确实是,因为根本没有显示“东西”部分),或者没有用(我个人认为这没有用)。所以对我来说,所有三个不赞成投票的标准都得到了满足。我投了反对票,但我这样做并不是因为粗鲁。
-
@Walter 你是对的,但是 sftrabbit 用问题的第一个修订版写了他的评论,指定
<class x>;) -
@Walter 哈哈,没关系。我认为发布到旧修订版的 cmets(和答案)旁边应该有一些修订参考,您可以点击查看差异。
标签: c++ class templates member