私は初めてC++でVS(2015)を使用していますが、途中で適切なコードを作成する初心者です。シンプルな何かをしようとすると - 初期化子リストを使用し...しかし、このエラーを投げています:C++初期化子リストの問題 - エラー:削除された関数を参照しようとしています
私が持っている(User.h):「C2280は、削除機能参照しよう」:場合
class User {
protected:
ICoordinateMapper* _coordMapper;
public:
User(ICoordinateMapper coordinateMapper)
: _coordMapper(coordinateMapper){}
};
をI次のようにコンストラクタをオーバーロード、それが正常に動作します:
class User {
protected:
ICoordinateMapper* coordinateMapper;
public:
User(){}
User(ICoordinateMapper* coordinateMapper)
: _coordMapper(coordinateMapper){}
};
マイアプリは以下のように(openFrameworksて)実行されます。
#include "ofApp.h"
int main(){
...
ofRunApp(new ofApp());
}
ofApp.h:
#pragma once
#include "ofMain.h"
#include "User.h"
class ofApp : public ofBaseApp{
public:
...
User user;
}
なぜですか?私はイニシャライザリストを使うときにコンストラクタをオーバーロードする必要はないと思った?それとも私ですか?
ありがとうございます!デフォルトの引数を使用することは理にかなっています。それが私が欠けていたものです。 – tyhenry