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

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

Войти
Регистрация
Восстановить пароль
 
Ufo's
0 / 0 / 0
Регистрация: 28.05.2011
Сообщений: 4
#1

Наследование Классов - C++

28.05.2011, 20:37. Просмотров 653. Ответов 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
class base
{
public:
    int t;
    base(){t=0;};
    ~base(){};
};
class one:public base
{
public:
    one(){t=1;};
    ~one(){};
};
class two:public base
{
public:
    two(){t=2;};
    ~two(){};
    void dwa(){/*...*/}
};
int main(int argc, char *argv[])
{
    base* yk[2];
    yk[0]=new one();
    yk[1]=new two();
    yk[1]->dwa();
    return 0;
}
При компиллировании ругается, что dwa() не является членом класса base.
Возможно ли как-нибудь осуществить такой вызов?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.05.2011, 20:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Наследование Классов (C++):

Заменить наследование классов на наследование интерфейсов - C++
#include <iostream> #include <assert.h> using namespace std; int people_on_base = 100; int vehicles_on_base = 100; double...

Наследование классов. Копирование производных классов - C++
Здравствуйте всем, у меня такой вопрос: написал код #include "stdafx.h" class A //Создаем класс А { int mA; ...

Наследование классов - C++
Задание: Создать класс базовый класс «квадрат». Элементы класса (поля имеют статус доступа protected): поле, задающее длину...

Наследование классов - C++
Собирал программу по частям, подскажите как исправить ошибки. #include <iostream> #include <conio.h> class Vehicle //...

Наследование классов - C++
Здравствуйте! Вот написан мой код ниже. Я когда пытаюсь ввести "What give animal:" идёт прекращение работы. Не понимаю почему. Помогите...

наследование классов - C++
Здарова, народ! :D Вот сижу и пытаюсь сделать задание из книги по которой "учимся программировать в универе", а там такой поворот...

7
ValeryLaptev
Эксперт С++
1041 / 820 / 48
Регистрация: 30.04.2011
Сообщений: 1,659
28.05.2011, 20:44 #2
Слова "виртуальная функция" ничего не говорят? Нет?
0
Ufo's
0 / 0 / 0
Регистрация: 28.05.2011
Сообщений: 4
28.05.2011, 20:55  [ТС] #3
Если написать
virtual void dwa(){/*...*/}
ничего не изменится. Или вы имели ввиду создать в классе base виртуальную функцию dwa? уточните пожалуйста, что вы имели ввиду.
0
ValeryLaptev
Эксперт С++
1041 / 820 / 48
Регистрация: 30.04.2011
Сообщений: 1,659
28.05.2011, 21:15 #4
Да. Именно это я и имел ввиду. В базовом классе создаете чистую виртуальную функцию, а в наследниках ее реализуете. Тогда через указатель базового класса можно вызывать метод наследника.
0
Ufo's
0 / 0 / 0
Регистрация: 28.05.2011
Сообщений: 4
28.05.2011, 21:40  [ТС] #5
А если dwa была бы не функцией, а переменной, и надо было бы ее вызвать так же?
0
ValeryLaptev
Эксперт С++
1041 / 820 / 48
Регистрация: 30.04.2011
Сообщений: 1,659
28.05.2011, 21:46 #6
Цитата Сообщение от Ufo's Посмотреть сообщение
А если dwa была бы не функцией, а переменной, и надо было бы ее вызвать так же?
Вы, хотите сказать, поле класса?
Поля класса по принципу инкапсуляции обычно делают приватными. А для доступа? если уж нужен конкретный доступ, делают два метода get()/set().
0
Ufo's
0 / 0 / 0
Регистрация: 28.05.2011
Сообщений: 4
28.05.2011, 22:35  [ТС] #7
а что за методы,можно поподробнее или какое-нибудь название этих методов, чтобы можно было загуглить?
0
ValeryLaptev
Эксперт С++
1041 / 820 / 48
Регистрация: 30.04.2011
Сообщений: 1,659
28.05.2011, 23:28 #8
get() - получить значение поля.
set() - изменить значение поля. Что тут гуглить-то?
0
28.05.2011, 23:28
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.05.2011, 23:28
Привет! Вот еще темы с ответами:

наследование классов - C++
Народ, всем приветик! Уже 3 день сижу над етой темой, не получается задание, вчера выбрасывал на форум исходник, но в конце концов сделал...

наследование классов - C++
Помогите пожалуйста разобраться с задачей Создайте базу данных деканата. В ней фиксируются данные о 2 категориях студентах: студенты...

Наследование классов - C++
Пусть автомобиль характеризуется установленным двигателем, трансмиссией и количеством мест для пассажиров. Двигатель определяется...

Наследование классов - C++
Здравствуйте, начал изучать наследование классов и не могу понять как ведут себя конструкторы с параметром. Вот код, но он печатает на...


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

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

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