Можно ли использовать конструктор копирования для инициализации идентичного производного класса из этих производных классов «близнец»?Конструкторы и конструкторы копирования по идентичным производным классам
Я хочу, чтобы инициализировать объект типа Computer
, который идентичен объекту, который я уже инициализировал типа User
. Computer cCarrier = User uCarrier;
Вид вещи.
Например
class Game
{
public:
//No constructor Intentional
protected:
int m_iSize;
string m_strName;
};
class User: public Game
{
public:
User(int _iSize, string str_Name);
~User();
};
class Computer: public Game
public:
Computer(int _iSize, string str_Name);
~Computer();
};
main.cpp
#include "game.h"
using namespace std;
int main()
{
User carrier(5, "Airship Carrier");
//Computer carrier = User::carrier;
};
Они одинаковые производные классы, я только сделал их таким образом, как виртуальный и визуальный способ представления User
и AI броненосцев в программирующий код, для программиста, а также для проверки сторонних кораблей для столкновений друг с другом и стрельбы.
, когда вы говорите в своем коде «Нет конструктора Intentional», вы понимаете, что есть объявленные конструкторы с неявным объявлением? – Brahim
Вы можете написать конструкторы, принимающие любые объекты. 'Computer :: Computer (User const & other) {/ * ... * /}' - то, что вы делаете для этого конструктора копий *, делает так, что это имеет смысл, зависит от вас. И для того, чтобы получить доступ к любому из '' '' '' членов '' '' пользователя '' нужно использовать страшный 'друг' ... – DevSolar
Я думаю, вам нужно определить конструктор на компьютере, который принимает пользователя в качестве параметра. – Brahim