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

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

Войти
Регистрация
Восстановить пароль
 
time123
0 / 0 / 0
Регистрация: 15.11.2012
Сообщений: 53
#1

Что значит знак ~ перед именем функции? - C++

23.11.2012, 20:05. Просмотров 1046. Ответов 13
Метки нет (Все метки)

Что значит знак ~ перед именем функции? И что он значит вообще?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
13051 / 7314 / 814
Регистрация: 27.09.2012
Сообщений: 18,050
Записей в блоге: 3
Завершенные тесты: 1
23.11.2012, 20:07     Что значит знак ~ перед именем функции? #2
Функция в классе и с названием класса?
Dekio
Фрилансер
Эксперт С++
5837 / 1218 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
23.11.2012, 22:02     Что значит знак ~ перед именем функции? #3
Деструктор
DU
1481 / 1057 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
23.11.2012, 22:06     Что значит знак ~ перед именем функции? #4
еще это может быть инверсия резултата, возвращаемого функцией:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream> 
 
unsigned flags()
{
  return 0xff;
}
 
 
int main()
{
  std::cout << std::hex <<  "flags = " << flags() << std::endl;
  std::cout << std::hex << "inverted flags = " << ~flags() << std::endl;
 
  unsigned f = flags();
  unsigned invertedF = ~f; // можно сразу ~flags();
 
 
  return 0;
}
Kuzia domovenok
1890 / 1745 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
23.11.2012, 22:19     Что значит знак ~ перед именем функции? #5
Цитата Сообщение от DU Посмотреть сообщение
~f;
но это не перед именем функции.
Впрочем, если рассматривать ~ как оператор, то он может быть перегружен и возвращать что угодно.
time123
0 / 0 / 0
Регистрация: 15.11.2012
Сообщений: 53
23.11.2012, 22:24  [ТС]     Что значит знак ~ перед именем функции? #6
хм...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
int flags()
{
  return 123;
}
 
 
int main()
{
  std::cout << "flags = " << flags() << std::endl;
  std::cout << "inverted flags = " << ~flags() << std::endl;
 
 
  return 0;
}
пишет

flags = 123
inverted flags = -124

это оно типа ноль посчитало чтоли
ValeryS
Модератор
6550 / 5016 / 463
Регистрация: 14.02.2011
Сообщений: 16,728
23.11.2012, 22:26     Что значит знак ~ перед именем функции? #7
Цитата Сообщение от time123 Посмотреть сообщение
flags = 123
inverted flags = -124
прочитай про инверсию битов
да и в десятичной записи говорить про инверсию как то странно
DU
1481 / 1057 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
23.11.2012, 22:27     Что значит знак ~ перед именем функции? #8
[0 ... 123] - 124 разных значения
[-1 ... -124] - тоже 124 разных значения.
смотрите как представлены отрицательные числа в бинарном виде.
Croessmah
Модератор
Эксперт CЭксперт С++
13051 / 7314 / 814
Регистрация: 27.09.2012
Сообщений: 18,050
Записей в блоге: 3
Завершенные тесты: 1
23.11.2012, 22:27     Что значит знак ~ перед именем функции? #9
Цитата Сообщение от time123 Посмотреть сообщение
это оно типа ноль посчитало чтоли
А не должно было? Это операция побитовая.
time123
0 / 0 / 0
Регистрация: 15.11.2012
Сообщений: 53
23.11.2012, 22:38  [ТС]     Что значит знак ~ перед именем функции? #10
не совсем в тему, но тем не менее, вот такой кусок кода:

C++
1
2
3
4
if (hInternet != NULL)
            HINTERNET hOpenUrl = ::InternetOpenUrl(hInternet, TEXT(httpstr), NULL, 0, INTERNET_FLAG_PRAGMA_NOCACHE, NULL);
 
        ::InternetCloseHandle(hInternet);
что здесь значат символы "::"?
ValeryS
Модератор
6550 / 5016 / 463
Регистрация: 14.02.2011
Сообщений: 16,728
23.11.2012, 22:40     Что значит знак ~ перед именем функции? #11
Цитата Сообщение от time123 Посмотреть сообщение
что здесь значат символы "::"?
глобальная функция
прочитай про область видимости
Croessmah
Модератор
Эксперт CЭксперт С++
13051 / 7314 / 814
Регистрация: 27.09.2012
Сообщений: 18,050
Записей в блоге: 3
Завершенные тесты: 1
23.11.2012, 22:40     Что значит знак ~ перед именем функции? #12
текущее пространство имен (ну естественно со всем включенными)
DU
1481 / 1057 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
23.11.2012, 22:43     Что значит знак ~ перед именем функции? #13
использовать функцию из глобального пространства имен.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.11.2012, 22:46     Что значит знак ~ перед именем функции?
Еще ссылки по теме:
Опишите структуру с именем Znak (Знак Зодиака) C++
C++ Что значит ":" после параметров функции
C++ Совсем пустяковая проблема в функции - говорит что пропущен знак ";"
Разобрать структуру с именем ZNAK, содержащую поля: фамилия, имя, знак зодиака, дата рождения C++
C++ Описать структуру с именем ZNAK, содержащую следующие поля: фамилия, имя. знак Зодиака, дата рождения (массив

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

Или воспользуйтесь поиском по форуму:
time123
0 / 0 / 0
Регистрация: 15.11.2012
Сообщений: 53
23.11.2012, 22:46  [ТС]     Что значит знак ~ перед именем функции? #14
глобальная функция
прочитай про область видимости
читал... теперь понятно.
Yandex
Объявления
23.11.2012, 22:46     Что значит знак ~ перед именем функции?
Ответ Создать тему
Опции темы

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