Форум программистов CodeGuru

Платформы => .NET => Тема начата: NewUser5555 от 04 Март 2015, 13:48:35



Название: Конструктор копирования по умолчанию
Отправлено: NewUser5555 от 04 Март 2015, 13:48:35
Код:
    class A
    {
        public int a;
        public int b;
        /// ...
        public int y;
        public int z;
    }

    class B : A
    {
        public B(A _a)
        {
            // base = _a; //как без лишних усилий присвоить значения базовому классу
        }

        public int aa;
        /// ...
        public int zz;
    }

В классе А не реализован конструктор копирования.
В конструктор класс B в качестве параметра передается экземпляр родительского класса A
Как без лишних усилий присвоить значения базовому классу?


Название: Re: Конструктор копирования по умолчанию
Отправлено: 3V от 05 Март 2015, 01:37:14
Может быть можно сделать в A конструктор копирования, принимающий ссылку на A и вызвать его через base из конструктора B ?

или так как нибудь (в C# я не силен):

Код:
    class A
    {
        public A(A _a)
        {
            a = _a.a;
            b = _a.b;
            // ...
        }

        public int a;
        public int b;
        /// ...
        public int y;
        public int z;
    }

    class B : A
    {
        public B(A _a) : base(_a)
        {
            aa = 0;
            // ...
        }

        public int aa;
        /// ...
        public int zz;
    }