将内存分配给类的指针

Allocating memory to a pointer of a class

本文关键字:指针 内存 分配      更新时间:2023-10-16

QGeoRoutingManager: http://apidocs.meego.com/1.0/qtmobility/qgeoroutingmanager-members.html

此类没有构造函数。我忘记了为其指针分配内存的方法。

我做了:

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&"

这是一个单例类,您可以像这样访问它:

QGeoServiceProvider::routingManager().

查看文档

如果该类没有公共(默认)构造函数,则无法(直接)创建它的新实例,无论是在堆栈上还是在免费存储(堆)上。您只能创建现有副本的副本,但文档不会显示可用的副本。

查看文档是否有工厂函数/类来创建该类的实例。

QGeoRoutingManager没有默认构造函数。默认构造函数是不接受任何参数的构造函数。如果需要,那么它们是可选的(具有默认值)。

该类确实有一个构造函数;所有类都有一个构造函数。 这类显然没有默认构造函数。 你不给我们看类,所以我们不得不猜测,但从错误消息中,类确实有一个复制构造函数。 你提供了吗? 只要有任何用户定义的构造函数,编译器都不会生成默认值构造 函数;您还必须提供其中之一。

我认为你需要QGeoRoutingManager * QGeoServiceProvider::routingManager () const

在这里查看: https://doc-snapshots.qt.io/qt-mobility/qgeoserviceprovider.html