0

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&」に従って、そこに何を渡す必要がありますか?

4

5 に答える 5

5

これはシングルトン クラスで、次のようにアクセスできます。

QGeoServiceProvider::routingManager().

ドキュメントを確認する

于 2011-05-24T07:30:23.503 に答える
2

クラスにパブリック (デフォルト) コンストラクターがない場合、スタックでもフリー ストア (ヒープ) でも、その新しいインスタンスを (直接) 作成することはできません。既存のもののコピーを作成することしかできませんが、ドキュメントには使用可能なコピー ctor が表示されていません。

そのクラスのインスタンスを作成するファクトリ関数/クラスがある場合は、ドキュメントを参照してください。

于 2011-05-24T07:27:13.663 に答える
0

クラスにはコンストラクターがあります。すべてのクラスにはコンストラクターがあります。クラスには明らかにデフォルトのコンストラクターがありません。クラスが表示されていないので、推測する必要がありますが、エラー メッセージから、クラスにはコピー コンストラクターがあります。提供しましたか?ユーザー定義のコンストラクターがあるとすぐに、コンパイラーはデフォルトのコンストラクターを生成しません。それらのいずれかも提供する必要があります。

于 2011-05-24T09:05:12.510 に答える
0

クラスにはデフォルトのコンストラクターQGeoRoutingManagerがありません。デフォルトのコンストラクターは、引数を取らないコンストラクターです。それが必要な場合、それらはオプションです (デフォルト値を使用)。

于 2011-05-24T07:27:43.943 に答える
0

私はあなたが必要だと思いますQGeoRoutingManager * QGeoServiceProvider::routingManager () const

ここをチェック: https://doc-snapshots.qt.io/qt-mobility/qgeoserviceprovider.html

于 2011-05-24T07:36:26.317 に答える