C ++无法调用方法

时间:2015-11-22 09:39:23

标签: c++ templates methods

我有以下代码,不知道如何调用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();

我在实例的第二行得到“错误:表达式必须具有类类型”。

1 个答案:

答案 0 :(得分:3)

AClass < std::shared_ptr<AnObject> > instance(); 

不会创建AClass < std::shared_ptr<AnObject> >的实例。

它声明了一个名为instance()的函数,它不接受任何参数并返回AClass < std::shared_ptr<AnObject> >

除其他外,这被称为&#34;最令人烦恼的解析&#34;。

删除()