Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
 Аватар для hepr
63 / 35 / 13
Регистрация: 21.10.2010
Сообщений: 538

Вопросы начинающего

21.10.2010, 16:34. Показов 1681. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте в С++ я еще новичок, поэтому, если позволите то я задам несколько вопросов
-class A: public B
По-смыслу это значит что класс А должен унаследовать все pubic методы класса B, я прав?
- Как создать дву(и более)мерный массив
Предположу что массивы могут быть только одно и двумерные(максимум 3-мерные) из-за того что например непонятна структура 4 мерного массива
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.10.2010, 16:34
Ответы с готовыми решениями:

Вопросы начинающего
Здравствуйте. Самостоятельно приступила к изучению Visual C++, т.к. наставников в шаговой доступности нет, а вопросы есть, решила...

C++ для начинающего!
Добрый день! Вопрос местным знатокам и гуру. Есть желание начать программировать на C++. Проблема в том, что не знаю, с чего начать. Книг...

Вопрос начинающего
Здравствуйте. Мне сейчас 16 лет и в сентябре я пойду в 11 класс (я школота). В будущем я хочу стать программистом. Сейчас я уже учу...

10
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
21.10.2010, 19:21
hepr, 1. Нет. Это открытое наследование. Паблик и протектед наследует. Доступ к приват элементам - закрыт.

2. Четырехмерный массив.
int Arr[n][n][n][n];
Но как с ним работать - другой вопрос. Такого лучше избегать.
Двумерный соответственно либо:
int Arr[n][n];
либо
int** Arr;

+ Любой массив n-мерной размерности можно представить в виде одномерного.
1
 Аватар для hepr
63 / 35 / 13
Регистрация: 21.10.2010
Сообщений: 538
21.10.2010, 22:58  [ТС]
1)Но насколько я знаю privatre члены класса вообще никогда не наследуются
2)А чем такое наследование отличается от A:B
3)А какие еще есть виды наследования и чем они отличаются
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
21.10.2010, 23:52
hepr, 2) A:B - как раз приватное наследование.
3) Соответственно открытое, закрытое и защищенное
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
22.10.2010, 00:40
Цитата Сообщение от hepr Посмотреть сообщение
1)Но насколько я знаю privatre члены класса вообще никогда не наследуются
2)А чем такое наследование отличается от A:B
3)А какие еще есть виды наследования и чем они отличаются
При любом виде наследования наследуется всё кроме конструкторов, деструктора и оператора копирующего присваивания.
Открытое наследование реализует отношение "является разновидностью", а закрытое - "реализуется посредством", но это отношение рекомендуется реализовывать вложением, т.е. делать объект одного класса членом другого. Защищенное наследование по-моему вообще не применяется.
1
98 / 94 / 16
Регистрация: 16.05.2010
Сообщений: 310
22.10.2010, 01:10
а разве при открытом наследовании в том числе не наследуются private элементы? О_о по моему не наследуются только protected, ну и соответственно конструкторы/деструкторы и тд.
0
 Аватар для hepr
63 / 35 / 13
Регистрация: 21.10.2010
Сообщений: 538
22.10.2010, 10:23  [ТС]
Нет вы не правы, privete тем и отличаются от protected что наследуются
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
22.10.2010, 11:00
Цитата Сообщение от hepr Посмотреть сообщение
По-смыслу это значит что класс А должен унаследовать все pubic методы класса B, я прав?
Нет. Если через двоеточие указан B, то наследуются все го члены, не зависимо от спецификаторов видимости. Но если не указать public, то public члены B в A становятся protected, а если указать, то они остаются public. Причём, private члены, хоть и наследуются, но методы класса A не имеют к ним прямого доступа, только через protected и public методы класса B.

Добавлено через 1 минуту
Цитата Сообщение от hepr Посмотреть сообщение
Нет вы не правы, privete тем и отличаются от protected что наследуются
Не этим. protected не только наследуется, но и открыт для потомков, а private закрыт, но данные с этим спецификатором тоже наследуются и под них в объектах, чей тип - потомок, отводится память, только защищённая.

Добавлено через 10 минут
Цитата Сообщение от hepr Посмотреть сообщение
Как создать дву(и более)мерный массив
Никак. Но можно создать массив массивов. На языках, поддерживающих многомерность, многомерный массив и массив массивов - синонимы:
Pascal
1
2
3
4
5
6
var a:array[1..100,1..100] of real; // двумерный массив
v:array[1..100] of real; // Одномерный массив
begin
a[1]:=b; // Элемент a[1] массива a адресуется как элемент-массив одномерного массива. Допустимо с точки зрения паскаля.
a[2][2]:=3; // Элемент a[2] массива a адресуется как элемент-массив одномерного массива, а его элемент a[2][2] адресуется как элемент типа real одномерного массива. Допустимо с точки зрения паскаля.
a[3,3]:=4; // Элемент a[3,3] массива a адресуется как элемент типа real двумерного массива. Допустимо с точки зрения паскаля.
. Обрати внимание, что так адресуется один и тот же массив. На сях же такой синонимичногсти нет, поэтому:
C++
1
2
3
float a[100][100];
a[1][1]=1; // Допустимо
a[2,2]=2; // Не допустимо
C
1
2
3
float a[100][100];
a[1][1]=1; // Допустимо
a[2,2]=2; // Не допустимо
C#
1
2
3
float a[100][100];
a[1][1]=1; // Допустимо
a[2,2]=2; // Не допустимо
.

Добавлено через 3 минуты
Цитата Сообщение от hepr Посмотреть сообщение
Предположу что массивы могут быть только одно и двумерные(максимум 3-мерные) из-за того что например непонятна структура 4 мерного массива
Понятна. На бейсике я начал массивы сразу с шестимерных и никаких сложностей это не вызывало.

Добавлено через 3 минуты
Цитата Сообщение от Lavroff Посмотреть сообщение
Такого лучше избегать.
Я плохо себе представляю области возможного применения массивов с размерностями 1, 3 и 4, а для двумерных знаю только одно применение - матрицы коэффициентов систем уравнений. А начиная с пяти - нормально.

Добавлено через 4 минуты
Цитата Сообщение от IchMors Посмотреть сообщение
ну и соответственно конструкторы/деструкторы и тд.
А как тогда вообще наследовать при наличии private?

Добавлено через 57 секунд
Цитата Сообщение от Lavroff Посмотреть сообщение
+ Любой массив n-мерной размерности можно представить в виде одномерного
массива массивов размерности n-1. Причём, на любом языке, поддерживающем массивы.
0
 Аватар для hepr
63 / 35 / 13
Регистрация: 21.10.2010
Сообщений: 538
22.10.2010, 11:01  [ТС]
Еще пару вопросов если позволите:
Как сделать указатель
- A* B
Объявляю указатель B на A
Как сделать ссылку
A& B
Аналогично
Я прав?
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
22.10.2010, 11:14
Цитата Сообщение от hepr Посмотреть сообщение
Еще пару вопросов если позволите:
Как сделать указатель
- A* B
Объявляю указатель B на A
Как сделать ссылку
A& B
Аналогично
Я прав?
Да. Только не по всех случаях уместны пустые ссылки, как ты здесь объявил. Объявлять прямо так имеет смысл только ссылку-параметр функции. А в остальных случаях
C++
1
2
A a;
A &b=a;
, причём, смысла и в этом маловато, так как адрес ссылки можно менять только один раз и только если она объявлена как пустая, но параметром не является.

Добавлено через 7 минут
Цитата Сообщение от taras atavin Посмотреть сообщение
На сях же такой синонимичногсти нет
Кстати, это мелочь, так как разница всего лишь в синтаксисе адресации элементов, а не в семанитике. Поэтому я сам часто зову сёвый массив массивов двумернным.
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
22.10.2010, 13:29
Цитата Сообщение от taras atavin Посмотреть сообщение
...Но если не указать public, то public члены B в A становятся protected, а если указать, то они остаются public.
Если не указывать в наследовании public, то по умолчанию там будет private, что означает, что все унаследованные члены базового класса станут private.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.10.2010, 13:29
Помогаю со студенческими работами здесь

Трудности начинающего программиста
Всем привет, сегодня я решил начать изучать С++, так как в школе я прогуливал уроки информатики, поэтому в программировании я ничего не...

Книга для начинающего
Подскажите, какая книга будет мне лучше, если учесть что немного знаю С#: Самоучитель по С++(читал что требуется знание языка Си) или С++...

Подскажите для начинающего!
Подскажите с чего лучше начать изучать программирование для начинающего? Какие книги нужны?С какого языка начать? Программированием...

вопрос от начинающего програмиста :)
есть определенная форама, с набросаными на нее лейбами баттонами радиобаттонами имейджами и еще несколькими элементами.. вопрос, как...

Книга для начинающего по С++
Скажите, какая книга доступно мне покажет программирование на С++??? вопрос от новичка, даже не могу ничего посоветовать... Может вы...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Киев стоит - украинская песня
zorxor 28.01.2026
wfWdiRqdTxc О Господи, Вечный, Ты . . . Я помоги, Бесконечный. . . Я прошу Ты. . . Я погибаю, спаси. . . Я прошу Тебя Вечный. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru