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

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

Войти
Регистрация
Восстановить пароль
 
Bmg113
201 / 147 / 5
Регистрация: 14.03.2013
Сообщений: 784
#1

Наследование, так ли это - C++

26.03.2014, 16:39. Просмотров 217. Ответов 3
Метки нет (Все метки)

Вообщем вот какой вопрос.

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
struct T
{
private:
    int f;
    int g;
};
 
struct D : private T
{
    int d;
    int r;
};
 
class cT
{
    int f;
    int g;
};
 
struct cD : private cT
{
    int d;
    int r;
};
2). Второй вариант.
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
struct T
{
public:
    int f;
    int g;
};
 
struct D : private T
{
    int d;
    int r;
};
 
class cT
{
    public:
    int f;
    int g;
};
 
struct cD : private cT
{
    int d;
    int r;
};
;
Проверял в MVS 2010 и Qt Creator 3.0.0 выдают во втором случае при автовставки что все переменные public....

Как так?
0
Миниатюры
Наследование, так ли это  
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.03.2014, 16:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Наследование, так ли это (C++):

Полиморфизм и наследование - что это? - C++
Объясните плз как можно проще что значит полиморфизм и наследование? Если второе я более менее понял то с 1 проблема. В интернете не смог...

Наследование, подскажите что не так - C++
Решил разобраться с наследованием, настрочил простенький такой код .. работать не хочет Подскажите что не так #include "stdafx.h"...

Множественное наследование - так ли это плохо? - C++
Вопрос не в том, что это такое и пр. С момента изучения Си++ во всех книжках все авторы (кроме самого Страуструпа) пишут, что множественное...

Так в каких случаях стоит использовать наследование? - C++
Здравствуйте, уважаемое сообщество. После прочтения "C++ Coding Standards" by Herb Sutter and Andrei Alexandrescu, возникли некоторые...

почему это так работает - C++
по заданию надо создать два одинаковых массива с случайными числами от 0 до 99 for (i = 0; i < 1000; i++) { cout <<a<<" "; ...

Почему так происходит и как это устранить - C++
почему если я напишу вот так - #include <stdio.h> #include <iostream> using namespace std; int main() { ...

3
DrOffset
7351 / 4451 / 1009
Регистрация: 30.01.2014
Сообщений: 7,292
26.03.2014, 18:27 #2
Цитата Сообщение от Bmg113 Посмотреть сообщение
выдают во втором случае при автовставки что все переменные public
Что, еще раз, выдает? Автокомплит? Ты лучше скомпилируй и посмотри вывод компилятора.
0
Bmg113
201 / 147 / 5
Регистрация: 14.03.2013
Сообщений: 784
26.03.2014, 18:48  [ТС] #3
Цитата Сообщение от DrOffset Посмотреть сообщение
Что, еще раз, выдает? Автокомплит? Ты лучше скомпилируй и посмотри вывод компилятора.
Ошибка безусловно появится/появилась. Но почему при автовыпадании списка это не предусмотрено?
0
DrOffset
7351 / 4451 / 1009
Регистрация: 30.01.2014
Сообщений: 7,292
26.03.2014, 19:04 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Bmg113 Посмотреть сообщение
Ошибка безусловно появится/появилась. Но почему при автовыпадании списка это не предусмотрено?
Потому что все автоподстановщики под С++ убоги в большей или меньшей степени.
1
26.03.2014, 19:04
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.03.2014, 19:04
Привет! Вот еще темы с ответами:

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

Почему в С++ это сделано именно так? Объяснение для НЕ программиста - C++
В этой теме хотелось бы задавать "тупые" вопросы по С++ и получить ответы и объяснения на нормальном человеческом языке, понятном НЕ...

Благодаря опережающему объявлению класса можно создать только УКАЗАТЕЛЬ на этот класс; так ли это? - C++
class B; class A{ A(); ~A(); B* b; //А вот так не компилится //B b_0; };

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


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

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

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