Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将内存分配给类的指针_C++_Qt_Pointers_Qt Mobility - Fatal编程技术网

C++ 将内存分配给类的指针

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:

此类没有构造函数。 我忘记了如何为指针分配内存

我做到了:

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您是否尝试单击我第一篇文章中的链接?