Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Графы на С++ http://www.cyberforum.ru/cpp-beginners/thread53801.html
Помогите плиз! Есть задача: Посвящение в студенты.Есть n студентов.НЕ ВСЕ знают друг друга.Но у каждого есть знакомые..Действует принцип:"Знакомые моих знакомых - мои знакомые" Задача найти пары...
C++ Определить все ходы для белой шашки. На шашечном поле в произвольном порядке расставлены шашки. Для выбранной пользователем белой шашки определить все ее возможные ходы. Учесть, что за один шаг белая шашка может сбить несколько черных... http://www.cyberforum.ru/cpp-beginners/thread53781.html
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)
Что такое NULL ? C++
Обьясните, что значит NUL часто вижу его в условиях и операторах а что это значит точто не знаю!!!
C++ Капли дождя http://www.cyberforum.ru/cpp-beginners/thread53755.html
Здравствуйте!!! Помогите пожалуйста сделать на консольном окне капли дождя(то есть как льет дождь). Нужно чтобы они падали как на землю!!! Спасибо заранее!!!
C++ DEV-C++ - виснет компилятор Всем ещё раз привет.Пытаюсь скомпилировать код вида: #include <graphics.h> int main() { initwindow(400,300); // открыть окно для графики подробнее

Показать сообщение отдельно
V.I.P.
1 / 1 / 0
Регистрация: 02.10.2009
Сообщений: 15

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

02.10.2009, 22:41. Просмотров 1659. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru