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

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

Восстановить пароль Регистрация
 
time123
0 / 0 / 0
Регистрация: 15.11.2012
Сообщений: 53
23.11.2012, 20:05     Что значит знак ~ перед именем функции? #1
Что значит знак ~ перед именем функции? И что он значит вообще?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,915
Записей в блоге: 2
Завершенные тесты: 1
23.11.2012, 20:07     Что значит знак ~ перед именем функции? #2
Функция в классе и с названием класса?
Dekio
Фрилансер
Эксперт C++
 Аватар для Dekio
5816 / 1214 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
23.11.2012, 22:02     Что значит знак ~ перед именем функции? #3
Деструктор
DU
1477 / 1053 / 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
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 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
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,056
23.11.2012, 22:26     Что значит знак ~ перед именем функции? #7
Цитата Сообщение от time123 Посмотреть сообщение
flags = 123
inverted flags = -124
прочитай про инверсию битов
да и в десятичной записи говорить про инверсию как то странно
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
23.11.2012, 22:27     Что значит знак ~ перед именем функции? #8
[0 ... 123] - 124 разных значения
[-1 ... -124] - тоже 124 разных значения.
смотрите как представлены отрицательные числа в бинарном виде.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,915
Записей в блоге: 2
Завершенные тесты: 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
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,056
23.11.2012, 22:40     Что значит знак ~ перед именем функции? #11
Цитата Сообщение от time123 Посмотреть сообщение
что здесь значат символы "::"?
глобальная функция
прочитай про область видимости
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,915
Записей в блоге: 2
Завершенные тесты: 1
23.11.2012, 22:40     Что значит знак ~ перед именем функции? #12
текущее пространство имен (ну естественно со всем включенными)
DU
1477 / 1053 / 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     Что значит знак ~ перед именем функции?
Еще ссылки по теме:

C++ Что значит вычислить значение функции с заданной точностью?
Опишите структуру с именем Znak (Знак Зодиака) C++
C++ Что значит ":" после параметров функции

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

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

Текущее время: 16:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru