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

Область видимости файла - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Составить программу вычисления матрицы по формуле, и подсчитать для нее определенные значения. http://www.cyberforum.ru/cpp-beginners/thread1091760.html
Задание Необходимо составить программу, которая 1)По формуле указанной в пункте «а» задания, используя значения номеров строк и столбцов, вычисляет элементы квадратной матрицы А={aij|i,j=0,...n-1}, где n-размер матрицы. 2)по правилу,указанному в пункте "б" задания, из матрицы А получает компоненты вектора x ={xi=0,...,m-1}, Где m-размер вектора 3)по известным координатам вектора вычисляет...
C++ Паттерн стратегия Всем привет! Начал изучать паттерны. Одним из наиболее понятных и интересных мне оказался паттерн Стратегия. Я начитался статей и примеров из различных источников. И как говорится запилил собственный пример на С++ и Java, с преферансом и куртизанками. =) Дабы устаканить у себя в голове полученные знания, я выставляю свой пример на обозрение опытных проггеров, чтобы вы посмотрели и указали на... http://www.cyberforum.ru/cpp-beginners/thread1091735.html
C++ Функция, возвращающая vector
Решил реализовать шарповскую String.Split(). Она должна возвращать vector<string>, следовательно либо для него надо выделять место в куче, что нежелательно, либо возвращать по значению. Слишком ли большой будет потеря по времени в последнем случае из-за копирования или это дело как-то оптимизируется?
C++ Парочка примитивных неясностей о массивах и C-strings
Когда я пишу: char * arr = new char; Выделяется память размером 7 байт под массив с элементами arr ... arr и обращение к arr приведет к ошибке? С-string это массив из элементов типа char заканчивающийся нулём. Если я хочу записать ANSI строку длинной 7 символов, достаточно сделать вот так: memcpy(arr, "example", 7); или мне нужно ли создавать дополнительный байт по нулевой символ: delete...
C++ Задача из книги Дейтела "Ромб" http://www.cyberforum.ru/cpp-beginners/thread1091719.html
В задаче использовать управляющие структуры(лог.операции, циклы) можно массивы. Остального я пока не знаю))
C++ Задача из книги Дейтела "Квадрат" Здравствуйте,В задаче использовать управляющие структуры(лог.операции, циклы) можно массивы. Остального я пока не знаю)) подробнее

Показать сообщение отдельно
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.02.2014, 05:50     Область видимости файла
Цитата Сообщение от WindSlasher Посмотреть сообщение
Это справедливо, только если объектные модули связаны напрямую, а не через их .h интерфейсы?
Ни через что они не связаны, это просто образное выражение. Модуль - это единица компиляции (.cpp файл).
.h файлы - они же не сами по себе? Текст .h файлов, через include, добавляется, перед компиляцией, к тексту .cpp файла. Получается один модуль.
Цитата Сообщение от WindSlasher Посмотреть сообщение
Коллизия имен, в таком случае, может возникнуть только, если имена глобальные переменные в .h файлах имеют одинаковые дескрипторы(имена)?
В .h файлах, не в .h файлах, не суть важно. И дело не в именах, а в определениях переменных (выделении под них памяти; напишу то же имя с extern и уже нет определения, а только объявление). Если у переменной внешнее связывание (например, глобальная неконстантная переменная), то такая переменная должна иметь только одно определение во всех файлах, которые видит компоновщик. Если сделать такое определение в одном из .h файлов, а потом подключить его к нескольким .cpp, то получится уже несколько определений, что вызовет ошибку компоновщика: множественное определение. Поэтому и не делают в .h файлах реализации (определения) таких переменных (или функций), за исключением шаблонов (но это и не реализации - память не выделяется).
 
Текущее время: 07:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru