我有一个类似于以下的C ++代码。
class TestA
{
};
class TestB
{
bool CreateTestAObject( TestA *& arg );
};
基本上我有一个名为TestA
的班级。在另一个名为TestB
的类中,我在TestB
内部有一个名为CreateTestAObject( TestA *& arg )
的方法,它创建了一个新的TestA
对象。该方法必须返回一个布尔值,指示方法的成功或失败。因此,为了返回新创建的TestA对象,我使用了参数列表,引用了类型TestA
类的指针。
在main()函数中,我做了,
TestB objB;
TestA* ptrA = NULL;
objB.CreateTestAObject( ptrA );
我的问题是,当我编译它时,我收到以下错误。
no matching function for call to TestB::CreateTestAObject(TestA *)
note: candidates are: bool TestB::CreateTestAObject(TestA *&)
我在这里做错了什么?参数是否需要转换为TestA*&
,如果是,为什么?提前谢谢。