Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Делаю простой текстовый редактор. Как реализовать в нём пункт "Заменить" как в блокноте? https://www.cyberforum.ru/ cpp-beginners/ thread852901.html
Помогите, пожалуйста. Делаю простой текстовый редактор. Как реализовать в нём пункт "Заменить" как в блокноте?
C++ Переставить столбцы в матрице по возрастанию сумм элементов в этих столбцах
Задача такая. Дана разреженная матрицы общего вида(CSS или CSR). Переставить столбцы в матрице по возрастанию сумм элементов в этих столбцах.
Быстрая сортировка C++
Здравствуйте уважаемые форумчане киберфорума. Имеется проблеммка с задачкой, могли бы вы помочь мне ее решить? Имеем двумерный массив(матрицу) сформированный в соответствии с конкретной функцией,...
C++ Структура tree. Функция работы с этой структурой Привет. В книге (неважно какой), есть пример такого кода: struct tree { int v; tree* p; }; int F(tree* q) { int i, m, n; https://www.cyberforum.ru/ cpp-beginners/ thread852894.html
C++ Добавление элементов в одномерный массив https://www.cyberforum.ru/ cpp-beginners/ thread852893.html
Здравствуйте, нужно сделать динамический одномерный массив "Добавить К элементов, начиная с номера N". Друг скинул похожую, только она не добавляет, а удаляет. Помогите переделать. Я не могу найти...
Умножение + создание матриц C++
Не могу разобраться с умножением матриц Выдает либо числовой мусор, либо просто нули... Вот код: #include <stdlib.h> #include <conio.h> #include <iostream.h> #include <stdio.h>...
C++ Заполнение массива числами и сортировка
Есть следующая задача: "Объявите двумерный вещественный массив, в котором n*m элементов. Заполните его числами полученными по закономерности: a(ij(а итое джейтое) = сумма (над суммой буква i под...
C++ Некорректно записываются числа в файл Всем привет и с наступающими праздниками. Имеется задание: надо записать в файл строки и числа, введенные с клавиатуры. Должно быть что-то вроде Ivanov Ivan 170 65 4587, а в файл записывается... https://www.cyberforum.ru/ cpp-beginners/ thread852833.html
C++ Для каждого числа последовательности вывести новое число, которое получится после записи цифр числа в обратном порядке https://www.cyberforum.ru/ cpp-beginners/ thread852822.html
Пожалуйста, напишите программы в С++ по функциям!). 29. Вводится последовательность из N целых чисел. Для каждого числа последовательности вывести новое число, которое получится после записи цифр...
C++ конкатенация строк Подскажите, почему не компилируется код: std::string ExtractFileName(std::string filename) { if (filename.size() == 0) return ""; int i = filename.size(); std::string... https://www.cyberforum.ru/ cpp-beginners/ thread852821.html
Антикодер
1855 / 831 / 47
Регистрация: 15.09.2012
Сообщений: 2,970
30.04.2013, 17:46 0

Указатели при наследовании классов

30.04.2013, 17:46. Просмотров 1549. Ответов 7
Метки (Все метки)

Ответ

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
#include <iostream>
using namespace std;
class list
{
    public:
        list *next;
        list *ph;
        list *p;
        void create()
        {
            list *q = new list;
            q->next = NULL;
            ph = q;
            p = q;
        }
 
        void add(list *x)
        {
            list *q = new list;
            x->next = q;
            q->next = NULL;
            p = q;
        }
        void show(list *ph)
        {
            for (p = ph; p != NULL; p = p->next)
            {
                //вывести нужные значения по указателю
                cout<< p <<' ';
            }
            cout<< endl;
        }
};
 
class database: public list
{
    public:
        int rooms();
        int floor;
        float S;
        char adress[30];
//      database *p;
        void show(list *ph)
        {
            for (p = ph; p != NULL; p = p->next)
            {
                //вывести нужные значения по указателю
                database *pG;
                pG = (database *)p;
                cout<< pG->floor <<' ';
            }
            cout<< endl;
        }
};
 
int main ()
{
    list ll, newLL;
    database db, newDb;
    ll.add(&newLL);
    ll.create();
    ll.show(&newLL);
    newDb.floor = 4;
    db.add(&newDb);
    db.show(&newDb);
    return 1;
}
чтоб получить доступ к полям database нужно выполнить преобразование типа из указателя
C++
1
pG = (database *)p;

у меня с глобальными *ph,*p даже не компилируется, а у вас компилируется? без предупреждений?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class list{
public:
list *next;
 
void create(){
list *q=new list;
q->next=NULL;
ph=q;
p=q;
}
 
void add(list *x){
list *q=new list;
x->next=q;
q->next=NULL;
p=q;
}
void show(list *ph){
    for(p=ph;p!=NULL;p=p->next){
    //вывести нужные значения по указателю
    }
    }
}*ph,*p;
Добавлено через 2 минуты
Цитата Сообщение от devx Посмотреть сообщение
тоесть указатели лучше объявить внутри public?
в идеале в секцию private

Вернуться к обсуждению:
Указатели при наследовании классов
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.04.2013, 17:46
Готовые ответы и решения:

Что происходит при наследовании классов?
Гуглил тут одну тему про наследование и коде встретилась строчка: D d; Что в ней конкретно...

Выделение памяти при наследовании классов
Здравствуйте! У меня есть метод который, читает память занимаемую классом. Есть несколько базовых...

Ошибка компиляции при наследовании классов
У меня есть класс CNew который наследует класс CTransport но при компиляции выводит ошибку ниже 4...

Ошибка Type missmatch при наследовании классов
При создании объекта класса Chord появляется ошибка: E2356 Type mismatch in redeclaration of...

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