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

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

Войти
Регистрация
Восстановить пароль
 
Riderik
28 / 28 / 1
Регистрация: 24.07.2011
Сообщений: 171
#1

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

29.12.2012, 18:51. Просмотров 540. Ответов 4
Метки нет (Все метки)

Схема классов на изображении снизу. При данной иерархии компилятор выдает предупреждение: "Client: наследуется "Human::Human::funk1" через превосходство". И собственно вопрос: как это исправить?

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
class IData {
public:
    virtual ~IData() = 0 {}
};
 
class IHuman: virtual public IData {
public:
    virtual void funk1() = 0;
};
 
class IClient: virtual public IHuman {
public:
    virtual void funk2() = 0;
};
 
class Human: virtual public IHuman {
public:
    void funk1() {}
};
 
class Client: public IClient, public Human {
public:
    void funk2() {};
};
 
int main() {
    IClient* client = new Client;
    client->funk1();
    client->funk2();
}
0
Миниатюры
Наследование через превосходство. Как исправить?  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.12.2012, 18:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Наследование через превосходство. Как исправить? (C++):

Исправить ошибку в коде на наследование - C++
Условие задачи: Создать класс Movie с полями: title (строка), length (в минутах, число). Создать конструктор. Создать также метод...

Исправить программу, чтобы присутствовало наследование - C++
Здравствуйте, написал программу, которая имеет 4 класса, она рисует на экране точку->линию->прямоугольник->параллелепипед. Я не уверен, что...

Найти причины возникновения ошибок в коде и исправить эти ошибки (наследование) - C++
Помогите понять в чем ошибки. header.h: #include <iostream> #include <string> using namespace std; #ifndef _HEADER_H_ ...

Наследование шаблонных классов: найти причины возникновения ошибки в коде и исправить эту ошибку - C++
подскажите почему появляется такая ошибка error C2248: 'Base<int,float>::value1' : cannot access protected member declared in class...

Убрать дублирование кода через наследование - C++
Добрый день. Есть два почти одинаковых класса со статическим членами: class First { public: enum MyEnum { ...

Найти ошибки в коде и исправить эти ошибки (Наследование) - C++
Вот в общем 3 файла, изучаю наследование на примере односвязного и двусвязного списков: list.h (inline) #pragma once class list...

4
gray_fox
What a waste!
1522 / 1227 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
29.12.2012, 19:02 #2
Не вижу проблем. gcc не ругается: http://liveworkspace.org/code/4DxqJm . Чем компилируете?
1
Riderik
28 / 28 / 1
Регистрация: 24.07.2011
Сообщений: 171
29.12.2012, 19:03  [ТС] #3
gray_fox, VS 2010. Ну если gcc сказал, что ок, то думаю можно просто отключить этот warning
0
gray_fox
What a waste!
1522 / 1227 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
29.12.2012, 19:20 #4
Цитата Сообщение от Riderik Посмотреть сообщение
VS 2010
Да, действительно. Думаю это баг.

Добавлено через 2 минуты
На msdn по этому поводу негодуют в комментариях: http://msdn.microsoft.com/en-us/library/6b3sy7ae%28v=vs.80%29.aspx
1
Croessmah
Ушел
Эксперт CЭксперт С++
13557 / 7707 / 872
Регистрация: 27.09.2012
Сообщений: 18,996
Записей в блоге: 3
Завершенные тесты: 1
29.12.2012, 22:10 #5
Цитата Сообщение от Riderik Посмотреть сообщение
И собственно вопрос: как это исправить?
Если надоедает, то:
C++
1
#pragma warning( disable : 4250 )
0
29.12.2012, 22:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.12.2012, 22:10
Привет! Вот еще темы с ответами:

Очень срочно , через 2 дня сдача) (композиция, наследование) - C++
ребята, сделайте пожалуйста код как можно стандартнее)) спасибо)

Нужно сделать композицию классов через объектные поля. (Не наследование!) - C++
Здравствуйте, у вас я тут впервые. Можете помочь с одним школьным заданием для моей подруги. Задача: //Реализовать класс Money...

Создание/открытие файлов, чтение из файла и запись в файл через наследование - C++
Имеется следующая иерархия классов: Файл, Типизированный файл, Текстовый файл Методы: Создать/Открыть файл, Чение из файла, Запись в...

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


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

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

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