Для чего нужен оператор двоеточие, если два двоеточия — это оператор расширения области видимости
для чего нужен оператор двоеточие ( : ), если два двоеточия( :: ) — это оператор расширения области видимости.
Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Оператор разрешения области видимости
Только начинаю изучать ООП. Объясните где и как применяется оператор разрешения области видимости.
Для чего нужен оператор this?
Здравствуйте. Я совсем новичок. Недавно стал смотреть видео курс на ютубе. Дошел до прототипов.

Для чего нужен оператор throw?
Объясните пожалуйста. А то в интернете найти ничего не могу. P.S. В MDSN непонятно написано.

Для чего нужен оператор lock?
для чего нужен оператор lock? в смысле я уже загуглил — он заставляет код выполняться синхронно, но.
![]()
13663 / 10580 / 6322
Регистрация: 18.12.2011
Сообщений: 28,248
1 2 3 4 5
struct A { int n; A():n(0){} };
18413 / 9584 / 2341
Регистрация: 30.01.2014
Сообщений: 16,742

Сообщение было отмечено Alexei9 как решение
Решение
Сообщение от Alexei9 
оператор двоеточие
В С++ нет такого оператора. Стандарт не дает ему названия, можно считать, что это просто синтаксический разделитель.
Он используется в множестве мест в зависимости от контекста.
Как составная часть тернарного оператора
int c = a b ? a : b;
Как обозначение начала списка инициализации конструктора
SomeClass() : a(1), b(2) {}
Как разделитель, обозначающий начало списка базовых классов при указании наследования
1 2 3
class SomeClass1 : public BaseClass1 {}; class SomeClass2 : public BaseClass1, public BaseClass2 {};
Как способ указания размерности битового поля
1 2 3 4
struct A { int a : 2; };
Как синтаксис задания типа в enum class (С++11)
1 2 3 4
enum : int { EN1, EN2 };
Как разделитель между for-range-declaration и expression в range-based for(C++11)
for(int & a : vec) { //.
Добавлено через 24 минуты
Еще два варианта использования забыл упомянуть:
Как окончание спецификатора доступа класса
1 2 3 4 5
class A { public: void func(); };
Как окончание декларации метки для goto
1 2 3 4 5
goto mylabel; ///. mylabel: func();
Или меток в конструкции switch — case
1 2 3 4 5 6 7 8
switch(a) { case 1: //. break; default: ; };
Регистрация: 05.06.2015
Сообщений: 4
Регистрация: 05.06.2015
Сообщений: 4
в чем разница между : (двоеточие) и :: (двойное двоеточие) в языке С++
528 / 431 / 159
Регистрация: 25.11.2014
Сообщений: 1,662
3175 / 1934 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
Примерно такая же, как между ‘Государем’ и ‘милостивым государем’.
‘:’ — это разделитель (после метки, в тернарном операторе, в структуре итд.).
‘::’ — оператор области видимости.
2441 / 1839 / 406
Регистрация: 15.12.2013
Сообщений: 8,222
Alexei9, неужели здесь вам ответили не достаточно подробно?
https://www.cyberforum.ru/post7721283.html
Регистрация: 05.06.2015
Сообщений: 4
преподавателю этого не хватило.
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
Alexei9, Преподаватель по танцам?
![]()
![]()
21275 / 8292 / 637
Регистрация: 30.03.2009
Сообщений: 22,656
Записей в блоге: 30
У оператора :: не было какой-то самоцели взять что-то и написать два раза подряд. Просто разделители (знаки типа точка, запятая, точка с запятой и т.п.) давным-давно закончились, вот и приходится разработчикам языка изголяться и переиспользовать один и тот же разделитель в разных синтаксических конструкциях. Т.е. символ один и тот же, но несёт разную смысловую нагрузку и по сути дела можно считать, что это символы «двоеточие номер 1», «двоеточие номер 2» и т.п.
3175 / 1934 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
Сообщение от Alexei9 
не хватило
DrOffset дал исчерпывающий ответ.
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Нюансы синтаксиса: для чего нужен оператор ->
Здравствуйте совсем недавно столкнулся с вот таким вот оператором. -> . Подскажите пожалуйста, что.

Для чего нужен оператор using и в каких случаях он необходим?
Несколько раз сталкивался в C# с оператором using. Но не могу понять для чего он нужен. Сейчас.

Для чего нужен пустой оператор writeln в массивах?
для чего нужен пустой оператор writeln в массивах?

Для чего нужен оператор разрешения контекста (scope resolution operator)?
Объясните простым языком для чего нужен оператор " :: " , и какого он вида?
Зачем нужен оператор while (именно while, а не do-while), когда есть оператор for?
Четкий и понятный ответ в литературе и на других web ресурсах не найден, поэтому вопрос к знатокам.

Условный оператор и оператор выбора. Даны два угла треугольника. Определить, существует ли такой треугольник
Даны два угла треугольника (в градусах). Определить, существует ли такой треугольник, и если да, то.
Двоеточие
Двоеточие — знак препинания в виде двух, расположенных одна над другой, точек ( : ) , употребляемый для указания на то, что часть текста после него связана причинными, пояснительными и т. п. смысловыми отношениями с частью текста перед ним.
- разделяет слова автора и прямую речь;
- ставится после обобщающего слова в обобщении («Удивляло и восхищало в нём всё: его манера говорить, его отношение ко всем, всегдашняя приветливость…») или предложениях с большим количеством однородных членов;
- используется как символ, который вводит перечисление чего-либо (примером может служить данный список);
- ставится между двумя частями сложного бессоюзного предложения, когда вторая часть предложения указывает на причину того, о чём говорится в первой, либо вторая часть поясняет первую, либо вторая часть дополняет одно из слов или словосочетаний первой.
В церковнославянской письменности двоеточие в целом эквивалентно русскому знаку «точка с запятой», но также используется и в функциях многоточия и даже точки на конце сокращений. Двоеточие как знак сокращения вообще было присуще старым европейским письменностям (в русском языке так было до середины XIX века); среди языков нового времени эта функция двоеточия сохраняется в шведском и финском, причём даже в середине слова: H:ki (Helsinki).
В фонетической транскрипции двоеточие после знака звука означает его долготу (в этом значении оно скорее является диакритическим знаком).
В современной армянской пунктуации двоеточие используется в конце предложения в качестве точки. Такое использование двоеточия известно также в римской, греческой, древнерусской письменности.
Математика
В математике двоеточие является одним из возможных обозначений операции деления (при этом симметрично отбивается с обеих сторон); в другом значении отделяет знак отображения и его область определения и множество значений: запись «f: A→B» означает, что функция f отображает A на B (при этом пробел ставится только после двоеточия).
Информатика и вычислительная техника
В языках программирования двоеточие может иметь самые разнообразные применения. Может использоваться как самостоятельно, так и в составных обозначениях.
- Самостоятельное двоеточие:
- используется для описания размерностей массива (пределов изменения индекса) и для выделения части массива: a[5:10];
- разделяет второй и третий операнды условного выражения a ? b : c, означающего «если условие a истинно, выбрать значение b, а иначе — значение c»;
- указывает тип переменной: i : integer;
- при определении меток ставится после них (Бейсик, Паскаль, Си, Verilog) или перед ними (пакетный файл в некоторых операционных системах);
- в Бейсике также употребляется в качестве разделителя команд при записи их в одну строку;
- в операторах выбора из нескольких альтернатив (switch, case и т. п., в зависимости от языка) отделяет описание условий применимости отдельного случая от действий, которые при этом должны выполняться;
- в некоторых операционных системах ставится в (иерархических) именах после названия (метки) физического или логического устройства: C:\MYDIR\A.TXT, prn: и т. п. По этой причине двоеточие не может быть использовано в имени файла;
- в некоторых операционных системах (например Mac OS) используется для указания иерархических путей к файлу;
- в языке Verilog двоеточие после ключевого слова начала блока (begin, fork) означает, что этот блок является именованным, и после такого двоеточия пишется имя блока;
- в командных языках некоторых операционных систем отделяет название ключа от его значения;
- в вики-разметке используется, например, в следующих ролях:
- для ссылок из одного проекта на другой (так называемых «интервики»), в том числе на иноязычные разделы Википедии;
- в ссылках внутри одного проекта отделяет указание пространства имён от индивидуального названия страницы (личной или служебной);
- в начале абзаца является символом форматирования, обозначающим, что этот абзац должен выводиться с отбивкой от левого края полосы текста (величина отбивки пропорциональна числу двоеточий).
- после ввода двоеточия в поле «Поиск» осуществляется переход на главную страницу данного Вики-проекта.
- в сочетании со знаком равенства применяется для записи оператора присваивания: x := x+1;
- в близкой роли в некоторых системах записи формальных грамматик используется сочетание ::= с двумя двоеточиями;
Код двоеточия в ASCII, Юникоде и большинстве других кодировок — U+003A.
Литература
- Двоеточие // Энциклопедический словарь Брокгауза и Ефрона: В 86 томах (82 т. и 4 доп.). — СПб. , 1890—1907.
Ссылки
- Орфографические правила употребления двоеточия на gramota.ru
- Знаки препинания
- Типографские знаки
Wikimedia Foundation . 2010 .
C что значит двоеточие
В стандартной библиотеке C++ для управления наборами объектов существуют контейнеры. Таким образом, можно сказать, что контейнер — это коллекция объектов определенного типа. Если же мы говорим о последовательном контейнере (sequential container), то он дает возможность контролировать порядок, в котором существующие элементы располагаются в коллекции, причем не только контролировать, но и управлять доступом к данным элементам.
Поделиться
Андрей Павленко
01.06.22 в 18:26В языке C++ исключения описываются типом exception, определенном в заголовочном файле . Рассмотрим обработку исключений на примере:
Поделиться
Андрей Павленко
01.06.22 в 18:06В языке программирования C++ есть возможность использования динамических массивов. Для выделения памяти под такой массив применяется оператор new, после которого надо в квадратных скобках указать, сколько конкретно этот массив будет содержать объектов. Рассмотрим соответствующий пример:
Поделиться
Андрей Павленко
15.03.22 в 18:55В языке программирования C++ при чтении и записи часто используются объекты std::cout и std::cin. Префикс std:: в данном случае указывает, что объекты cout и cin определены в пространстве имен std. При этом двойное двоеточие :: представляет собой оператор области видимости (scope operator), позволяющий указывать, в каком конкретно пространстве имен определен этот объект. То есть без префикса использовать эти объекты мы не сможем.
Двоеточие в определении конструктора
Область кода за двоеточием и до начала тела конструктора называется списком инициализации членов (англ. «member initializer list»).
Используется как для инициализации членов класса, так и для вызова конструктора базового/базовых классов, т.е. по сути, инициализации базовой составляющей. Также здесь может быть вызов другого конструктора текущего класса (делегирование конструкторов, начиная с c++11).
Без инициализатора конструктора не обойтись, если в классе присутствует член ссылочного типа или константа, или член класса, у которого нет конструктора по умолчанию:
struct S < S(int) <>// Конструктор с параметром. Не является конструктором по умолчанию. >; class B < public: B(int i) : i(i), r(i), s(i) < // this->i = i; // Ошибка. Нельзя присваивать константе. // r = i; // Ошибка. Не является инициализацией ссылки. // s = S(i); // Ошибка. `s` должен быть создан в инициализаторе конструктора. > private: const int i; int& r; S s; >;т.к. код, начинающийся за фигурной скобкой будет приводить уже не к инициализации члена, а к присваиванию ему значения, чего нельзя сделать для упомянутых ранее ссылок или констант.
Дополнительно стоит заметить (как было упомянуто в комментарии Monah Tuk), что если член-класса не инициализирован явно в инициализаторе конструктора и при этом ему присваивается значение в теле конструктора, то он сначала будет инициализирован конструктором по умолчанию (или инициализацией в определении класса (c++11)):
class D < int i = 42; // Инициализация члена в определении класса >;После чего выполнится присваивание в теле конструктора. Для сложных классов это может приводить к дополнительным расходам.
Т.о. инициализацию членов стоит производить либо в определении класса, либо в инициализаторе конструктора. Не стоит пытаться сделать нечто подобное непосредственно внутри тела конструктора.