Ошибка компилятора говорит, что CTestNew
- это не то же самое, что Test
РЕДАКТИРОВАТЬ: В ответ на комментарии высказывание CTestNew
является подклассом тезисов Test
CTest* Module::function(params)
{
CTestNew* ptr = new CTestNew(params);
dosomething();
return ptr;
}
должно быть:
CTest Module::function(params) // Don't return a pointer to a shared pointer
{
Test * ptr = new Test(params); // You're using Test not CTestNew in the CTest typedef
dosomething();
return CTest(static_cast<Test *>(ptr));
}