Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 20.12.2016
Сообщений: 98
1

Глобальное разрешение ::

15.04.2017, 19:55. Показов 2745. Ответов 27
Метки c++ (Все метки)

Author24 — интернет-сервис помощи студентам
Для чего нужно объявить прототип метода в классе, а описывать его уже за пределами класса?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.04.2017, 19:55
Ответы с готовыми решениями:

очень глобальное определение
скачал curl - там функции не добавлены в импорт, следственно в скомпилированной либе их нет. вот в...

вопрос про глобальное пространство имен
#include <iostream> namespace { int a = 1; } int main() { using std::cout; int a = 5;

Глобальное считывание комбинаций win api
Всем привет, есть такая штука как autoHotKey смысл ее действия это считывать нажатия клавиш или...

Глобальное задание, охватывающее почти весь с++
Здравствуйте, недавно тут начал с++ изучать, дошел до ООП. Но это только теория, вся практика...

27
1550 / 875 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
16.04.2017, 23:06 21
Author24 — интернет-сервис помощи студентам
Цитата Сообщение от hoggy Посмотреть сообщение
но только функции с внутренним
связыванием имеют такой иммунитет.
Однако, в стандарте не один раз упоминается inline function with external linkage
См. например 7.1.2.4
По умолчанию inline имеет внутреннее связывание, да.
0
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
16.04.2017, 23:43 22
Цитата Сообщение от Croessmah Посмотреть сообщение
Согласно стандарту остается лишь одна реализация,
остальные при сборке просто выпиливаются.
Какая остается? Зависит от левой пятки компилятора.
Собственно, поэтому функция должна иметь одинаковое
определение во всех единицах трансляции где используется,
иначе потом компилятор оставит только одну и будет сюрприз,
хотя всё и соберется без проблем.
Очень заинтересовало про выстрел в ногу, можно пример?
0
1550 / 875 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
16.04.2017, 23:54 23
Цитата Сообщение от avgoor Посмотреть сообщение
По умолчанию inline имеет внутреннее связывание, да.
Соврал. inline функция по умолчанию имеет внешнее связывание 7.1.1.7:
inline void l();
void l(); // external linkage
0
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
17.04.2017, 00:08 24
rikimaru2013, берете два cpp файла, в каждом делаете inline-функцию с разной реализацией:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//main.cpp
#include <iostream>
 
inline void foo()
{
   std::cout << "main foo" << std::endl;
}
 
void bar();
 
int main()
{
   foo();
   bar();
}
C++
1
2
3
4
5
6
7
8
9
10
11
//s.cpp
#include <iostream>
inline void foo()
{
   std::cout << "s foo" << std::endl;
}
 
void bar()
{
   foo();
}
Собираем:
g++ -o main main.cpp s.cpp
Запускаем и смотрим результат.
Собираем:
g++ -o main s.cpp main.cpp
Запускаем и смотрим результат.
Играемся по другому с параметрами.
2
rikimaru2013
17.04.2017, 00:13
  #25

Не по теме:

Цитата Сообщение от Croessmah Посмотреть сообщение
Играемся по другому с параметрами.
я смотрю, вы знаете толк в геймдеве))) :p

0
Croessmah
17.04.2017, 00:15
  #26

Не по теме:

rikimaru2013, да-а-а, я диванный геймдев-эксперт.

0
1550 / 875 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
17.04.2017, 00:22 27
Croessmah, это UB. Реализации должны быть одинаковыми.
0
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
17.04.2017, 00:27 28
avgoor, так это и требовалось.
0
17.04.2017, 00:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.04.2017, 00:27
Помогаю со студенческими работами здесь

Как сделать глобальное пространство имени?
Вот так не работает: global.h extern namespace matrix { mat4 proj; mat4 view; ...

Глобальное задание массива в качестве параметра функции
Дамы и господа, такой вопрос. Работаю с классами и функциями, и мне необходимо сделать так, чтобы...

Глобальное переопределение "operator <<" для char *
Здравствуйте. Привожу пример для демонстрации проблемы. Помогите пожалуйста в ее устранении или...

Разрешение приложения - чтобы приложение подстраивалось под разрешение экрана
Можно ли средствами c++ bulder сделать так, чтобы разрешение приложения подстраивалось под...


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

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru