Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
 Аватар для Vadim2411
0 / 0 / 0
Регистрация: 10.05.2018
Сообщений: 64

Нюансы синтаксиса: объяснить что происходит в заданных строках кода и для чего нужны указанные конструкции

18.05.2018, 19:40. Показов 887. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Наткнулся на урок по C++ в интернете, где был пример с перебором "телефонной книги". Вот кусок кода, где объявляется класс:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
class Number{
public:
    string name;
    string number;
    Number(const Number &v):
        name(v.name),
        number(v.number){}
    const Number &operator=(const Number &v){
        name=v.name;
        number=v.number;
        return v;
    }
};
Что такое const Number &v и const Number &operator? Для чего указываются name(v.name),number(v.number), и что это?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.05.2018, 19:40
Ответы с готовыми решениями:

Нюансы синтаксиса: объяснить что происходит в заданных строках кода
Разбираюсь со структурами. Подскажите, пожалуйста, что означает с 3 по 7 строку? Для чего так делается? struct node { ...

Нюансы синтаксиса: объяснить, что происходит в заданных участках кода
mas_tops=new node *; // что это строка значит? и зачем она нужна create_massiv_of_lists(node** x,int l) // зачем тут двойной указатель ...

Объяснить, для чего нужны указанные фрагменты кода
class foo { //variables public: protected: private: //functions public: foo();

7
Mental handicap
 Аватар для Azazel-San
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
18.05.2018, 19:51
Цитата Сообщение от Vadim2411 Посмотреть сообщение
C++
1
const
константа
Цитата Сообщение от Vadim2411 Посмотреть сообщение
C++
1
Number
пользовательский тип
Цитата Сообщение от Vadim2411 Посмотреть сообщение
C++
1
&
ссылка
Цитата Сообщение от Vadim2411 Посмотреть сообщение
C++
1
operator
перегрузка оператора

Добавлено через 1 минуту
Цитата Сообщение от Vadim2411 Посмотреть сообщение
Для чего указываются name(v.name),number(v.number), и что это?
инициализация строки через конструктор
0
 Аватар для mvngr
225 / 189 / 98
Регистрация: 15.04.2018
Сообщений: 718
18.05.2018, 19:57
Цитата Сообщение от Vadim2411 Посмотреть сообщение
Что такое const Number &v и const Number &operator
Это перегрузка метода присваивания. Благодаря ему вы можете, например, создать координату a. В классе этой координаты имеются x & y. Но у вас не получится написать а = б, хотя оба являются объектами класса. Чтобы это было возможным и используется присваивание. Подобным способом вы можете заменить все 49 операций в плюсах

Цитата Сообщение от Vadim2411 Посмотреть сообщение
name(v.name),number(v.number)
Так-с. А это уже наследование. У вас не совсем правильный код. Там должно быть так:

Цитата Сообщение от Vadim2411 Посмотреть сообщение
class Number : name, number{...}
Он вызывает конструкторы классов родителей. . Ты можешь туда передавать данные, которые принимает твой класс. Пример из моего кода:

C++ (Qt)
1
2
3
Building::Building(QList<QPointF> points, Types type, Materials material):Object(points, material){
//code
}
Не обращай внимания на переменные, главное - суть. Вызывается конструктор Building, он уже заранее унаследован от Object. Но у Object нет конструктора без параметров, а один из конструкторов как раз принимает points, material. Поэтому тебе для корректной работы дочернего класса нужно вызывать конструктор базового класса. Вот так ты и передаешь ему параметры. Так же можно передавать параметры конструкторам нескольких классов, если ты от них унаследовался. Для этого нужно ставить запятую после Object и писать второй конструктор
0
Mental handicap
 Аватар для Azazel-San
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
18.05.2018, 20:10
Цитата Сообщение от mvngr Посмотреть сообщение
А это уже наследование
да вы что )

Не по теме:

это конструктор копирования использующий the initializer list..

1
 Аватар для mvngr
225 / 189 / 98
Регистрация: 15.04.2018
Сообщений: 718
18.05.2018, 20:12
Azazel-San, стыдно мне
Пользуюсь на практике, но правильных терминов, видимо, не знаю. Спасибо за поправку, вы делаете меня чуточку компетентнее
0
 Аватар для Vadim2411
0 / 0 / 0
Регистрация: 10.05.2018
Сообщений: 64
19.05.2018, 07:35  [ТС]
Цитата Сообщение от Azazel-San Посмотреть сообщение
C++
1
&
ссылка
А почему ссылка указывается на объект (v), который до этого не создавался? Или v это и будет объект, который будет присвоен к этому классу Number?
0
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
19.05.2018, 09:03
Цитата Сообщение от Vadim2411 Посмотреть сообщение
А почему ссылка указывается на объект (v), который до этого не создавался?
по ссылке передаем объект в метод(функцию) которая называется конструктор копирования
0
 Аватар для Vadim2411
0 / 0 / 0
Регистрация: 10.05.2018
Сообщений: 64
19.05.2018, 14:56  [ТС]
Цитата Сообщение от "Azazel-San" Посмотреть сообщение
C++
1
operator
перегрузка оператора
Почему перед operator стоит & ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.05.2018, 14:56
Помогаю со студенческими работами здесь

Нюансы работы с указателями: объяснить, что происходит в заданном фрагменте кода
Всем доброго времени суток! Я не до конца разобрался в данной теме. К примеру, есть такой кусок программы: ... int N; int...

Объяснить, что происходит в заданных фрагментах кода
Здравствуйте, товарисчи! Очень хотелось бы объяснения хода работы данных программ + того, что они выведут в результате. Чем подробнее,...

Нюансы синтаксиса: объяснить использование ключевого слова typedef в заданном фрагменте кода
Всем привет. Недавно на просторах интернета столкнулся с таким кодом: typedef double(*pointFunc)(double); double f(double x) { ...

Нюансы синтаксиса: объяснить как работает тернарная операция в заданном фрагменте кода
Всем доброго времени суток! Помогите разобраться с кодом. const char x = {&quot;Jason &quot;, &quot;at your service\n&quot;}; const char * y =...

Нюансы синтаксиса: подробно объяснить, что означает данный код (variadic templates)
Как понять эти строки? template &lt;typename T, typename ...types&gt; void printTypes(T, types... t) { std::cout &lt;&lt;...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
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 и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru