Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Графы на С++ https://www.cyberforum.ru/ cpp-beginners/ thread53801.html
Помогите плиз! Есть задача: Посвящение в студенты.Есть n студентов.НЕ ВСЕ знают друг друга.Но у каждого есть знакомые..Действует принцип:"Знакомые моих знакомых - мои знакомые" Задача найти пары...
Определить все ходы для белой шашки. C++
На шашечном поле в произвольном порядке расставлены шашки. Для выбранной пользователем белой шашки определить все ее возможные ходы. Учесть, что за один шаг белая шашка может сбить несколько черных...
C++ как сделать правильно указатель на первую функцию
#include "stdafx.h" #include "stdio.h" #include "conio.h" int F(int n) { if(n==0) return 1; if(n==1) return 1; return (n+(n-1)); } int _tmain(int argc, _TCHAR* argv)
C++ Что такое NULL ? Обьясните, что значит NUL часто вижу его в условиях и операторах а что это значит точто не знаю!!! https://www.cyberforum.ru/ cpp-beginners/ thread53769.html
C++ Капли дождя https://www.cyberforum.ru/ cpp-beginners/ thread53755.html
Здравствуйте!!! Помогите пожалуйста сделать на консольном окне капли дождя(то есть как льет дождь). Нужно чтобы они падали как на землю!!! Спасибо заранее!!!
DEV-C++ - виснет компилятор C++
Всем ещё раз привет.Пытаюсь скомпилировать код вида: #include <graphics.h> int main() { initwindow(400,300); // открыть окно для графики
Как просуммировать список??? C++
В узлы первого списка записаны цифры первого числа,а в узлы второго списка записаны цифры второго числа.Первый и второй список одной структуры.Каким образом их суммировать?Напишите пожалуйста...
C++ непонятные ошибки Здравствуйте Ситуация такая: программа выводит в определенную часть экрана некую последовательность символов, затем запоминает эту определенную часть экрана в буфер, затем восстанавливает из... https://www.cyberforum.ru/ cpp-beginners/ thread53716.html
C++ nujni komponenti vcl dlia bcb6 https://www.cyberforum.ru/ cpp-beginners/ thread53704.html
pomoghite pojaluista nati devexress s instaliashkoi esli mojno skinite link a to na trekerah ih snali
C++ Уплотнить заданную матрицу, удаляя из нее строки и столбцы, заполненные нулями Уплотнить заданную матрицу, удаляя из нее строки и столбцы, заполненные нулями. Найти номер первой из строк, содержащих хотя бы одни положительный элемент. Помогите пожалуйста, С++ 2008... сам... https://www.cyberforum.ru/ cpp-beginners/ thread53697.html
1 / 1 / 0
Регистрация: 02.10.2009
Сообщений: 15
0

Наследование классов. Копирование производных классов

02.10.2009, 22:41. Просмотров 2550. Ответов 4
Метки (Все метки)

Здравствуйте всем, у меня такой вопрос:
написал код

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#include "stdafx.h"
 
class A     //Создаем класс А
{
    int mA;
 
public:
    A (int a = 0) //Конструктор
    {
        mA = a;
    }
 
    const A& operator = (const A& copy) //Перегружаем оператор =
    {
        if(this == &copy)
            return * this;
 
        mA = copy.mA;
 
        return * this;
    }
 
    ~A () {}
 
    void PutA (int a) //Метод задает значение mA
    {
        mA = a;
    }
 
    int GetA () //Возвращает значение mA
    {
        return mA;
    }
};
 
class B :   //Класс В является производным
    public A    //относительно класса А
{
    int mB;
 
public:
    B (int b = 0)
    {
        mB = b;
    }
 
    const B& operator = (const B& copy)
    {
        if(this == &copy)
            return * this;
 
        mB = copy.mB;
 
        return * this;
    }
 
    ~B () {}
 
    void PutB (int b)
    {
        mB = b;
    }
 
    void PrintData()    //Выводит все члены, относящиеся к В
    {
        cout << "mA = " << GetA() << ", mB = " << mB << endl;
    }
};
 
void main()
{
    B b1, b2;   //Создаем 2 объекта
 
    b1.PutA(5); //Задаем в первом значение mA = 5
 
    b2 = b1;    //Копируем из b1 в b2
 
    b1.PrintData(); //Выводим b1
 
    b2.PrintData(); //Выводим b2
}
В итоге получаю на экране:

mA = 5, mB = 0
mA = 0, mB = 0

тоесть когда вызвался перегруженный оператор = для b2 он не скопировал данные из родительского класса. Подскажите пожалуйста как это исправить?

Вернуться к обсуждению:
Наследование классов. Копирование производных классов
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.10.2009, 22:41
Готовые ответы и решения:

Множественное наследование. Построение производных классов
Необходимо построить иерархию классов согласно схемы наследования. Каждый класс должен содержать...

Автоматическая генерация классов С ++ с UML диаграмм классов. Наследование в с++. Абстрактные классы. WhiteStarUML
Создать классовую модель(желательно в WhiteStarUML), которая включает в себя абстрактный класс...

Сравнение производных классов
Друзья! Пусть у меня есть базовый класс S. У него есть два наследника A и B. Как мне скидывать,...

Использование базовых и производных классов
Не могу решить задачу с классами помогите с решением. Создать класс String – строка. Определить...

4
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.