Я реализую класс Duplicator, который позволит мне дублировать объекты Game. Мне нужно иметь возможность создать объект Game, идентичный тому, который у меня есть. Это существует в более широкой реализации настольной игры с несколькими другими классами, такими как Board и Space.
У меня есть два файла для класса Duplicator:
Duplicator.h
#ifndef DUPLICATOR_H
#define DUPLICATOR_H
#include <Rcpp.h>
#include <stack>
#include "Game.h"
using namespace Rcpp;
class Duplicator {
private:
Game gameObj = Game(5);
public:
Duplicator(Game g);
// Game genDuplicate();
};
#endif
Дубликатор. cpp
#include <Rcpp.h>
#include <vector>
#include "Game.h"
#include "Duplicator.h"
using namespace Rcpp;
Duplicator::Duplicator(Game g){
gameObj = g;
}
RCPP_EXPOSED_CLASS(Duplicator)
RCPP_MODULE(duplicator_cpp) {
class_<Duplicator>("Duplicator")
.constructor<Game>()
;
Ошибка, которую я продолжаю получать:
нет подходящего конструктора для инициализация «Game»
Класс игры содержится в двух файлах.
Game.h
#ifndef GAME_H
#define GAME_H
#include <Rcpp.h>
using namespace Rcpp;
class Game {
private:
int id;
public:
Game(int n);
};
#endif
Игра. cpp
#include <Rcpp.h>
#include "Game.h"
using namespace Rcpp;
Game::Game(int n){
id = n;
}
RCPP_EXPOSED_CLASS(Game)
RCPP_MODULE(game_cpp) {
class_<Game>("Game")
.constructor<int>()
;
}
Я не совсем уверен, что мне нужно делать. Похоже, мне нужно предоставить конструктор для Game в классе Duplicator.