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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
slipp1
13 / 12 / 1
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
#1

Как инициализировать элементы данных производного класса через базовый? - C++

15.03.2013, 17:07. Просмотров 584. Ответов 1
Метки нет (Все метки)

есть базовый клас у него есть производный(открытое наследование), как инициализировать элементы-данных производного класа через базовый?

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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#include <iostream>
using namespace std;
class Base
{
public:
    //конструктор создаст динамический двумерный массив
    Base()
    {
        cout<<"::enter constructor Base"<<endl;
    //вводим количество строк нашего массива
    cout<<"enter row: "<<endl;
    cin >> row;
    
    //если ввели отрицательное количество строк
    if(row<0)
    {
        //умножаем на -1
        row=row*-1;
    }
    cout<<"enter colomn: "<<endl;
    cin >> colomn;
 
    //если ввели отрицательное количество слолбцов
    if(colomn<0)
    {
        //умножаем на -1
        colomn=colomn*-1;
    }
 
    //динамически выделяем память для нашего массива
    massiv = new int*[row];
    for (int i=0; i!=row; i++)
    {
        massiv[i] = new int[colomn];
    }
 
    //обнуляем все элементы массива
    for(int i=0;i!=row;i++)
    {
        for(int y=0;y!=colomn;y++)
        {
            massiv[i][y]=0;
        }
    }
 
    cout<<"\tyou create dynamic array["<<row<<"]"<<"["<<colomn<<"]. enjoy!!"<<endl;
 
    //выводим массив на печать
    printArray();
    }
    
    ~Base()
    {
        cout<<":: enter destructor Base"<<endl;
        for (int i = 0; i<=row-1; i++)
        {
            delete [] massiv[i];
        }
        delete [] massiv;
    }
 
//вывод всего массива на печать
    void printArray()
    {
        for(int i=0;i<=row-1;i++)
        {
            for(int y=0;y<=colomn-1;y++)
            {
                cout<<massiv[i][y]<<"   ";
            }
            cout<<endl;
        }
    }
 
private:
    int **massiv;
 
    int row;//число строк
    int colomn;//число столбцов
};
 
class Derived: public Base
{
public:
    int **massive;
    int row;
    int colomn;
};
 
int main()
{
    //создаем обьект БАЗОВОГО КЛАССА
    Base user;
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.03.2013, 17:07
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как инициализировать элементы данных производного класса через базовый? (C++):

Вызов метода производного класса через указатель на базовый класс - C++
Всем привет ! Подскажите почему , при выполнении строки 45 я получаю ошибку ? А именно при выполнении выражения c-&gt;fnz() ...

Класс: как обратиться к методу производного класса через итератор на базовый класс? - C++
Есть абстрактный и два порожденных. Хочу создать например list&lt;Base*&gt; list1; затем добавляю себе в список: ...

Указателю на базовый класс присвоить адрес производного класса - C++
class Point { public: Point(float a=0, float b=0) { x=a; y=b; } protected: float x; float y; };

Присвоение указателю на базовый класс адреса производного класса - C++
Когда наследую как public,всё норм,как private - ошибка. Как сделать тогда,чтобы открылся конструктор? Base :: Base(); Не помогает ...

Создать копию объекта производного класса зная указатель на базовый - C++
Добрый день! Вопрос в следующем... Возможно ли создать копию объекта производного класса зная указатель на базовый класс? У меня получился...

Задача (разъяснение) в алгоритм (программа, используя базовый и производный классы, создавала массив объектов типа производного класса) - C++
Задача на наследование классов, базовый класс - &quot;люди&quot;, производный - &quot;студенты&quot;...как я понял, а базовом надо создать символьную матрицу в...

1
Kuzia domovenok
2128 / 1956 / 195
Регистрация: 25.03.2012
Сообщений: 6,808
Записей в блоге: 1
15.03.2013, 17:09 #2
базовый класс ничего не должен знать о производных. Это производные сами должны иметь собственный конструктор.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.03.2013, 17:09
Привет! Вот еще темы с ответами:

Вызов метода производного класса через обращение к методу базового класса - C++
Добрый день. Изучаю основы ООП, наткнулся на проблему. Если создавать классы внутри main.cpp, то всё нормально. Если же создавать в...

как сделать чтобы объект производного класса сам себя добавлял в список или массив указателей базового класса? - C++
я хотел так, но программа просто падает void Student::add(Base** head) { cout &lt;&lt; &quot;I here&quot; &lt;&lt; endl; this-&gt;setName(); //все...

Друзья, подскажите, говорят, что можно поля класса инициализировать в момент объявления класса. Как это сделать? - C++
Скажу сразу, а то сейчас начнется, что я прекрасно понимаю, что поля класса при объявлении инициализировать нельзя. Можно конструктором при...

Как узнать тип производного класса в функции базового - C++
Всем привет! Есть иерархия классов: class1 -&gt; class2-&gt;class3 class2-&gt;class4 class2-&gt;class5 Где...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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