【发布时间】:2016-03-03 01:09:56
【问题描述】:
最近我遇到了一些看起来像这样的代码:
Foo<SomeType> member;
...
void SomeFunc(Bar* bar);
...
SomeFunc(member);
我发现它非常混乱。有人能解释一下这里到底发生了什么吗?
member 如何是有效的Bar*?
Foo<SomeType> 是否以某种方式子类化指针类型?
这是模板的一些属性吗?如果member 是Foo 而不是Foo<SomeType>,还有可能吗?
【问题讨论】:
-
您需要提供
Foo<SomeType>的定义以获得准确的答案。也许它有一个隐式转换。 -
你确定某处没有
void SomeFunc(Foo<SomeType> foo);吗?
标签: c++ function templates pointers types