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

Почему в файле все функции объявлены как static? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ При вынесении определения всегда ли нужно указывать функцию как inline явно? http://www.cyberforum.ru/cpp-beginners/thread1231937.html
Бьярни пишет Если в описании класса функция-член определена, а не только описана, то она считается подстановкой. Это значит, например, что при трансляции функций, использующихchar_stack из предыдущего примера, не будет использоваться никаких операций вызова функций, кроме реализации операций вывода! class char_stack { int size; char* top;
C++ Область видимости анонимного объекта при вызове функции Доброго дня. Хотел поинтересоваться: когда уничтожится анонимный объект, переданный как параметр функции? #include <stdio.h> #include <string> using namespace std; class Obj{ private: string s; http://www.cyberforum.ru/cpp-beginners/thread1231879.html
STL Заполнить массив размером 10 случайными числами от 0 до 10, отсортировать его по убыванию и вывести C++
Заполнить массив размером 10 случайными числами от 0 до 10, отсортировать его по убыванию и вывести в выходной поток. Добавлено через 20 минут пример, но он с ошибками #include <vector> #include <algorithm> #include <iostream> #include <functional> using namespace std;
C++ STL Заполнить строку латинским алфавитом и вывести ее в выходной поток
Заполнить строку латинским алфавитом и вывести ее в выходной поток. С++ Добавлено через 20 минут вот пример выполнения, но в нем ошибки #include <string> #include <iostream> using namespace std; int main() { string s;
C++ STL Заполнить двухмерный вектор таблицей умножения и вывести его в выходной поток http://www.cyberforum.ru/cpp-beginners/thread1231847.html
Заполнить двухмерный вектор таблицей умножения и вывести его в выходной поток. Добавлено через 19 минут пример, но в нем ошибки #include <vector> #include <iostream> #include <iomanip> using namespace std; int main() {
C++ STL Заполнить вектор длинной 10 случайными числами от 0 до 9 и вывести его в выходной поток Заполнить вектор длинной 10 случайными числами от 0 до 9 и вывести его в выходной поток. подробнее

Показать сообщение отдельно
Tulosba
:)
Эксперт С++
4387 / 3230 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
22.07.2014, 13:13     Почему в файле все функции объявлены как static?
Цитата Сообщение от 0x10 Посмотреть сообщение
static == internal linkage, т.е. по идее символ не должен нигде фигурировать в объектнике.
Вероятно сноска в C++11 как раз на этот счет (7.3.1.1/1):
Although entities in an unnamed namespace might have external linkage, they are effectively qualified by a name unique to their translation unit and therefore can never be seen from any other translation unit.
Т.е. несмотря на external linkage всё равно достучатся извне нельзя. Но при этом это не то же самое, что и static, который дает internal linkage.
Короче говоря, для пользователя кода, как я понял "те же яйца, вид сбоку". Поправьте, если не так.
 
Текущее время: 04:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru