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

пмогите разобратся... - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ while http://www.cyberforum.ru/cpp-beginners/thread520863.html
Дана последовательность чисел 1+1/2, 1+1/3,…1+1/n . Вывести все значения n, при которых все числа последовательности будут не меньше a (1 < a ≤ 1,5) {int n(2);double a; do { a=1+(1/n); cout<<n<<"\n"; n++; } while(a>1); getch(); в этом случае выводит 2 и все;
C++ Класс "Геометрическая фигура" Здравствуйте! Необходимо создать класс Геометрическая фигура,от него производные классы прямоугольник и пятиугольник, с методами IsIntersect(T&. T&)(Определить факт пересечения объектов ob1(прямоугольник) и оЬ2(пятиугольник)(есть пересечение или нет)) и Move()(Переместить объект на плоскости) Заранее благодарна!! http://www.cyberforum.ru/cpp-beginners/thread520855.html
C++ Помогите понять и исправить ошибку (статические обьекты)
Недавно начал разбираться в новой теме и тут же с примером ошибка... (компилятор выдает 2 ошибки смысл которых мне относительно ясен но вот как исправить я без малейшего понятия...) #include <iostream> using namespace std; int counter (void) // Определение функции { static int K; // Статическая переменная,
строки C++
Дана строка. Напечатать те слова этой строки, которые отличны от последнего слова и выполнено свойство: буквы слова упорядочены по алфавиту. помогите, добрый люд,только очень прошу без указателей и процедур! и как понять последнее условие?
C++ серверное обслуживание, сервера http://www.cyberforum.ru/cpp-beginners/thread520848.html
Подскажите какие нибудь руководства где рассказывалось бы что такое сервер, как сделать его, какие программы для него нужны, какие лучше какие хуже, как работает серверное оборудование и т.д и т. п. Заранее спасибо!
C++ Обьясните простым языком об указателях * и & Всё что в книгах прочитал, но толком не могу понять зачем нужны * и &. Обьясните кто может, простым языком... подробнее

Показать сообщение отдельно
алексейч
2 / 2 / 0
Регистрация: 22.02.2012
Сообщений: 66
Записей в блоге: 1
17.03.2012, 17:49  [ТС]     пмогите разобратся...
Тип компоновки, или тип связывания, определяет соответствие идентификатора конкретному объекту или функции в программе, исходный текст которой размещен в нескольких файлах (модулях). В этом случае каждому имени, используемому в нескольких файлах, может соответствовать либо один объект (функция), общий для всех файлов, либо по одному и более объектов в каждом файле. Файлы программы (модули) могут транслироваться отдельно, и в этом случае возникает проблема установления связи между одним и тем же идентификатором и единственным объектом, которому он соответствует. Такие объекты (функции) и их имена нуждаются во внешнем связывании, которое выполняет компоновщик (редактор связей) при объединении отдельных объектных модулей программы. Для остальных объектов (функций), которые локализованы в файлах, используется внутреннее связывание.

Тип компоновки (связывания) никак специальным образом не обозначается при определении объектов и описании имен, а устанавливается компилятором по контексту, местоположению этих объявлений и использованию спецификаторов класса памяти static и extern.

Например, имена статических объектов (static) локализованы в своем файле и могут быть использованы как имена других объектов и функций в других независимо транслируемых файлах. Такие имена имеют внутренний тип компоновки (связывания). Если имена объектов или функций определены со спецификатором extern, то имя будет иметь внешний тип компоновки (связывания). Рассмотрим следующую программу, функции которой и определения переменных рассредоточены по трем текстовым файлам:
(моя программа)

Результат выполнения:

Параметр цикла К = О
Внешнее К = 1
Внутреннее K_IN из функции display = 0
Параметр цикла К = 1
Внешнее К = 4
Внутреннее K_IN из функции display = 1
Параметр цикла К = 2
Внешнее К = 8
Внутреннее K_IN из функции display = 2

Анализируя текст и результаты программы, обратите внимание на следующее:

внешняя переменная с именем K является общей для файлов 1 и 3 (внешнее связывание);
внутренняя переменная с именем K существует только в основном модуле;
статические переменные с именем K_IN различны в модулях 1 и 3, т.е. это различные объекты с одинаковым именем. Для каждого из них реализуется внутреннее связывание.
Для некоторых имен тип компоновки не существует. К ним относятся параметры функций, имена объектов, локализованных в блоке (без спецификаторов extern), идентификаторы, не являющиеся именами объектов и функций (например, имя введенного пользователем типа).
вот все что внем есть..ей богу...+сори думал вы покомандам из программы помете...ну хоть часть ошибок/(((
эх попытался сам сделать только напладил ошибок и потерял веру в свои силы=(
вот что вышло витоге
//РЗ-10-1.СРР - первый файл многомодульной программы
#include <iostream>

using namespace std;
int counter(void);
int display(void);
int main ()
{
int K = 0;
static int K_IN =0;
К = K_IN++
}

// ----------------------------------------- Модуль 2 -------------------------------------

//РЗ-10-2.СРР - второй (основной) файл программы
#include <iostream>
void main (void)
{ void counter(void); // Прототип - внешнее связывание
void display(void); // Прототип - внешнее связывание
// К - локальный объект - внутреннее связывание:
for (int K = 0; K < 3; K++)
{ cout << "\nПараметр цикла К =" << K; // Изменяет свою К_ IN и внешнюю К
}
return 0 ;
}

//----------------------------------------- Модуль 3 ---------------------------------------

//РЗ-10-З.СРР - третий файл программы
#include <iostream>
void main(void)
{void display(void); // Для display - внешнее связывание
extern int K; // Для К - внешнее связывание static
int K_IN = 0; // Для К_IN - внутреннее связывание
cout << "\nВнешнее К = " << K++ << " Внутреннее К_IN из функции display = " << K_IN++;
}
 
Текущее время: 13:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru