我有以下代码,不知道如何调用AMethod()函数。谁能帮我这个? 谢谢
template<>
class AClass < std::shared_ptr<AnObject> >
{
public:
std::shared_ptr<AnObject> AMethod() const
{
//DoStuff
return std::make_shared<AnObject>(x);
}
};
我尝试过类似的东西,但它不起作用:
AClass < std::shared_ptr<AnObject> > instance();
std::shared_ptr<AnObject> result = instance.AMethod();
我在实例的第二行得到“错误:表达式必须具有类类型”。
答案 0 :(得分:3)
AClass < std::shared_ptr<AnObject> > instance();
不会创建AClass < std::shared_ptr<AnObject> >
的实例。
它声明了一个名为instance()
的函数,它不接受任何参数并返回AClass < std::shared_ptr<AnObject> >
。
除其他外,这被称为&#34;最令人烦恼的解析&#34;。
删除()
。