Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как лучше всего писать Unit тесты для кода? Как лучше всего писать тесты для кода? В том плане что к примеру есть специальные библиотеки и т.д., что лучше? https://www.cyberforum.ru/ cpp-beginners/ thread2490100.html C++ Найти произведение двух длинных целых чисел
Здравствуйте. Я плохо знаю русский. Извините за этого. Я еще новичок в C++ программирование. В олимп есть токая задача https://www.e-olymp.com/ru/problems/272, уже 2 дня не могу найти решение. Можете...
C++ Объединение двух длл в одну через ресурсы третьей длл https://www.cyberforum.ru/ cpp-beginners/ thread2490083.html
Мне нужно сунуть 2 длл в ресурсы другой длл и инициализировать эти длл при подгрузке длл которая хранит эти 2 длл у себя в ресурсах, как можно реализовать это в коде, помогите.
C++ Cmake subprojects https://www.cyberforum.ru/ cpp-beginners/ thread2490063.html
Здравствуйте, ситуация такая. Есть проект Proj у него 1 подпроект subProj в котором еще 2 подпроекта (subProj1, subProj2) _____________ ___________________ ...
Шаблонный метод без шаблонного класса C++
Доброго времени суток, можно ли сделать подобное? class ClassA { template <class T> T Cast<T>() { } };
C++ Конструктор с параметрами https://www.cyberforum.ru/ cpp-beginners/ thread2490007.html
Добрый день. Я не считаю, что задавать вопросы в стиле (Я не могу решить задание на степике, помогите) это хороший вариант, но тут я немного в тупике. Нам дали вот такие параметры для...
C++ Можно ли создать массив в котором с 0 по 4 элемент будут храниться double, с 5 по 9 будут храниться int и т.д.? https://www.cyberforum.ru/ cpp-beginners/ thread2489987.html
Такой вопрос: я хочу создать одномерный массив в котором с 0 по 4 элемент будут храниться double, с 5 по 9 будут храниться bool, с 10 по 14 будет храниться int. Я видел пример со структурами как раз...
Работа с кавычками с++ C++
можете ли вы мне помочь со столь стервозной проблемой. Допустим у меня есть строка - string str = "hello "world" "\\\"" --- \'\\ test \"\' world "; и мне нужно узнать откуда...
C++ Thread. Первый раз с много-поточностью https://www.cyberforum.ru/ cpp-beginners/ thread2489913.html
Привет, форумчане! есть код, код не мой, но хотелось бы, по возможности, разобраться. Нужно генерировать случайные строки из диапазоне mutex mtx; class Make_timer { public: Make_timer()...
C++ Thread. Многопоточность Привет! есть код, код не мой, но хотелось бы разобраться, по возможности. Нужно генерировать строки в диапазоне mutex mtx; class Make_timer { public: Make_timer() :t1(system_clock::now()) {... https://www.cyberforum.ru/ cpp-beginners/ thread2489910.html
C++ Z(x,y)=min{max{sinx,siny},x,y}
Как вычислить ф-цию Z(x,y)=min{max{sinx,siny},x,y} если -1.7<=x<=9.4 увеличение по 9.3, а 0<=y<=3 , увеличение по 0.75 .
C++ Переменные родительского класса https://www.cyberforum.ru/ cpp-beginners/ thread2489863.html
Всем привет! Такая проблема Класс родитель class Layer { public: Layer(); ~Layer();
2 / 2 / 1
Регистрация: 04.04.2018
Сообщений: 351
0

Ошибка, виртуальные функции, ООП - C++ - Ответ 13764954

11.08.2019, 17:01. Показов 921. Ответов 2
Метки (Все метки)

Вот код, ошибка на 79 строке когда нужно вывести имя, пишет что указатель не туда указывает
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
// vitrpers.cpp
// виртуальные функции и класс person
#include <iostream>
using namespace std;
///////////////////////////////////////////////
class person                    //класс person
{
protected:
    char name[40];
public:
    void getName()
    {
        cout << "  Введите имя: "; cin >> name;
    }
    void putName()
    {
        cout << "  Имя: " << name << endl;
    }
    virtual void getData() = 0;      //чистые
    virtual bool isOutstanding() = 0; //виртуальные
                                     //функции
};
////////////////////////////////////////////////
class student : public person   //класс student
{
private:
    float gpa;                //средний балл
public:
    void getData()            //запросить данные об ученике у
    {                       //пользователя
        person::getName();
        cout << "  Средний балл ученика:  "; cin >> gpa;
    }
    bool isOutstanding()
    {
        return (gpa > 3.5) ? true : false;
    }
};
////////////////////////////////////////////////
class professor : public person //класс professor
{
private:
    int numPubs;              //число публикаций
public:
    void getData()            //запросить данные о педагоге у
    {                       //пользователя
        person::getName();
        cout << "  Число публикаций:  "; cin >> numPubs;
    }
    bool isOutstanding()
    {
        return (numPubs > 100) ? true : false;
    }
};
////////////////////////////////////////////////
int main()
{
setlocale(LC_ALL,"Rus");
    person* persPtr[100];  //массив указателей на person
    int n = 0;            //число людей, внесенных в список char choice;
    char choice;
    do {
        cout << " Учащийся (s) или педагог (p): ";
        cin >> choice;
 
        if (choice == 's')               //Занести нового ученика 
            persPtr[n] = new student;   // в массив
        else                          //Занести нового
            persPtr[n] = new professor; //педагога в массив
 
        persPtr[n++]->getData();       //Запрос данных о персоне
        cout << " Ввести еще персону (y/n)? "; //создать еще
                                               //персону
        cin >> choice;
    } while (choice == 'y');       //цикл, пока ответ 'y'
    int i = 0;
    for (;i < n; i++);
    {
        persPtr[i]->putName();        //Вывести все имена,
        if (persPtr[i]->isOutstanding())        //сообщать о 
            cout << "  Это выдающийся человек!\n"; //выдающихся
    }
    system("pause");
    return 0;
}                      //Конец main()
Добавлено через 8 минут
Уточню что после 79 строки он переходит в абстрактный класс person там пытается вызвать name я вижу по отладчику что переменная просто пустая и он не может вызвать

Вернуться к обсуждению:
Ошибка, виртуальные функции, ООП C++
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.08.2019, 17:01
Готовые ответы и решения:

ООП виртуальные функции
ЗАДАНИЕ: Создать абстрактный базовый класс Pair с виртуальными арифметическими операциями....

Ошибка при компиляции виртуальные функции
error LNK2001: неразрешенный внешний символ &quot;&quot;public: virtual float_thiscall...

Виртуальные и чисто виртуальные функции
Чем они отличаются?? если можно, с примерами. И как из виртуальной функции сделать чисто...

Виртуальные функции
Какие происходят изменения, когда в классе объявляем одну или несколько функций виртуальными? ...

2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.08.2019, 17:01

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Виртуальные функции С++
Задача: В классе хранится целое, и определяется виртуальная функция shownum(). Создать 2...

Виртуальные функции
Создать абстрактный базовый класс с виртуальной функцией - объем. Создать производные классы:...

Виртуальные функции
Имеется базовый класс Shape: class Shape { protected: virtual void drawShape() { } } и...

Виртуальные функции
Здрасте! вот задачка, какбэ сделал, но нужны виртуальные функции. даже не знаю как их сделать. ...

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