C++ 将内存分配给类的指针
QGeoRoutingManager: 此类没有构造函数。 我忘记了如何为指针分配内存 我做到了:C++ 将内存分配给类的指针,c++,qt,pointers,qt-mobility,C++,Qt,Pointers,Qt Mobility,QGeoRoutingManager: 此类没有构造函数。 我忘记了如何为指针分配内存 我做到了: QGeoRoutingManager *a = new QGeoRoutingManager (); 这将导致以下错误: calculateRoute.cpp:16: error: no matching function for call to ‘QtMobility::QGeoRoutingManager::QGeoRoutingManager()’ ../../../../tarBalls
QGeoRoutingManager *a = new QGeoRoutingManager ();
这将导致以下错误:
calculateRoute.cpp:16: error: no matching function for call to ‘QtMobility::QGeoRoutingManager::QGeoRoutingManager()’
../../../../tarBalls/qt-mobility-opensource-src-1.2.0/install/include/QtLocation/qgeoroutingmanager.h:91: note: candidates are: QtMobility::QGeoRoutingManager::QGeoRoutingManager(const QtMobility::QGeoRoutingManager&)
根据错误消息const QtMobility::QGeoRoutingManager&我应该在其中传递什么?如果该类没有公共默认构造函数,则不能直接在堆栈或空闲存储堆上创建它的新实例。您只能创建现有副本的副本,但文档中没有显示可用副本
如果有工厂函数/类来创建该类的实例,请查看文档。类QGeoRoutingManager没有默认构造函数。默认构造函数是不接受任何参数的构造函数。如果需要,则它们是可选的,具有默认值。这是一个单例类,您可以这样访问它:
QGeoServiceProvider::routingManager().
检查我认为您需要QGeoRoutingManager*QGeoServiceProvider::routingManager常量
检查这里:该类确实有一个构造函数;所有类都有一个构造函数。这个 类显然没有默认构造函数。你没有给我们看 类,所以我们必须猜测,但是从错误消息来看,类 没有复制构造函数。你提供了吗?只要有 任何用户定义的构造函数,编译器都不会生成默认值
建造师;您也必须提供其中一个。它有一个,是的,但错误清楚地表明它不是公开的。@Xeo:我看不出错误清楚地说明了这一点。你能帮我吗?@Nawaz:因为每个类都会自动获取默认的ctor,如果找不到,它必须是非公共的。@Xeo:不,每个类都不会自动获取默认的ctor。如果您定义了一个接受参数的ctor,那么编译器不会为您生成默认ctor。@Nawaz:停止编辑注释,使其具有完全不同的含义;PDid您是否尝试单击我第一篇文章中的链接?