C что значит двоеточие
Перейти к содержимому

C что значит двоеточие

  • автор:

Для чего нужен оператор двоеточие, если два двоеточия — это оператор расширения области видимости

для чего нужен оператор двоеточие ( : ), если два двоеточия( :: ) — это оператор расширения области видимости.

Лучшие ответы ( 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, Преподаватель по танцам?

Эксперт CАвтор FAQ

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: AB» означает, что функция 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; // Инициализация члена в определении класса >; 

        После чего выполнится присваивание в теле конструктора. Для сложных классов это может приводить к дополнительным расходам.

        Т.о. инициализацию членов стоит производить либо в определении класса, либо в инициализаторе конструктора. Не стоит пытаться сделать нечто подобное непосредственно внутри тела конструктора.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *