Я использую VS (2015) в C++ в первый раз и являюсь новичком при создании полупристойного кода. Попытка сделать что-то простое - использовать список инициализатора ... но это бросает эту ошибку: «C2280: попытка сослаться на удаленную функцию»ошибка списка инициализаторов C++ - ошибка: попытка ссылки на удаляемую функцию
У меня есть (user.h):
class User {
protected:
ICoordinateMapper* _coordMapper;
public:
User(ICoordinateMapper coordinateMapper)
: _coordMapper(coordinateMapper){}
};
Если я перегрузить конструктор следующим образом, он работает отлично:
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