J'utilise VS (2015) en C++ pour la première fois, et je suis un novice dans la création de code décent à mi-chemin. Essayer de faire quelque chose de simple - utiliser une liste de initialiseur ... mais il lancer cette erreur: « C2280: tentative de référencer une fonction supprimée »C++ initializer liste problème - erreur: tentative de référence d'une fonction supprimée
Je (User.h):
class User {
protected:
ICoordinateMapper* _coordMapper;
public:
User(ICoordinateMapper coordinateMapper)
: _coordMapper(coordinateMapper){}
};
Si je surcharger le constructeur comme suit, il fonctionne très bien:
class User {
protected:
ICoordinateMapper* coordinateMapper;
public:
User(){}
User(ICoordinateMapper* coordinateMapper)
: _coordMapper(coordinateMapper){}
};
Mon application est exécutée (par openFrameworks) comme:
#include "ofApp.h"
int main(){
...
ofRunApp(new ofApp());
}
deApp.h:
#pragma once
#include "ofMain.h"
#include "User.h"
class ofApp : public ofBaseApp{
public:
...
User user;
}
Pourquoi est-ce? Je pensais que je n'avais pas besoin de surcharger le constructeur lors de l'utilisation des listes d'initialisation? Ou est-ce que je
Merci! Utiliser un argument par défaut est logique - c'est ce qui me manquait. – tyhenry