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

Различие глобальной и глобальной статической переменной - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Функционально-подобные макросы http://www.cyberforum.ru/cpp-beginners/thread607709.html
Есть переменная std::string Log; и есть другие переменные, или параметры функции. Например, int x; int y; Можно ли написать макрос, заменяющий Log<<LOG(x); на Log<<"<x>"<<std::endl<<"<value>"<<x<<"</value>"<<std::endl<<"<adress>"<<(void *)&x<<"</adress>"<<std::endl<<"</x>"<<std::endl;, а Log<<LOG(y); на Log<<"<y>"<<std::endl<<"<value>"<<y<<"</value>"<<std::endl<<"<adress>"<<(void...
C++ Деление комплексных чисел Вот код #include <iostream> #include <math> using namespace std; typedef struct { float re, im; } cmplx; cmplx cmplx_div( cmplx c, cmplx d ){ float r, p; cmplx res; http://www.cyberforum.ru/cpp-beginners/thread607690.html
C++ Контроль ошибок при вводе
Появился такой вопрос..как проконтролировать пользователя чтоб тот не вводил где не надо символы. if(cin.fail()) cout<<"Только число!\n"; попробывал по такому принципу не получилось..может кто подскажет как лучше всего реализовать данный вопрос?)
C++ Определить количество слов в каждом предложении
Помогите с программой. Задание: Дан файл с текстом, где каждое предложение занимает строку файла. Определить количество слов в каждом предложении, количество помес- тить в новый файл целых чисел.Рассортировать предложения по возрастанию количества слов в каждом предложении.
C++ Англо русский словарь http://www.cyberforum.ru/cpp-beginners/thread607680.html
Англо-русский словарь построен как дерево. Каждая компонента содержит английское слово, соответствующее ему русское слово и счетчик количества обращений к данной компоненте. Первоначально дерево формируется согласно английскому алфавиту. В процессе эксплуатации словаря при каждом обращении к компоненте в счетчик обраще¬ний добавляется единица. Составить программу, которая: • обеспечивает...
C++ Нужно написать формулу нахождения функции у экспонент со степенями Пишу программу нужно написать формулу для функций экспонента в степени корня третей и пятой степени: e^3√x и e^5√x Помогите с написанием #include <iostream.h> #include <math.h> #include <graphics.h> #include <conio.h> #include <stdio.h> #include <stdlib.h> подробнее

Показать сообщение отдельно
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2293 / 1663 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
17.06.2012, 15:23     Различие глобальной и глобальной статической переменной
Van111, дело в том, что если Вы располагаетет определение нестатичекого объекта в заголовочном файле, то тем самым нарушаете One Definition Rule, т.к. данный объект будет определен в каждой единице трансляции, в который будет включен заголовочный файл. Если Вам нужен глобальный объект, видимый другим модулям, определите его в исходном файле, а в загловочном объявите как extern, т.е.:
C++
1
2
3
4
5
// source.cpp 
int object;
 
// header.h
extern int object;
В таком случая указанное правило нарушено не будет.
Если же Вы объявите в заголовочном файле объект как static, то у каждого модуля будет своя "копия" данного объекта, невидимая другим.

Цитата Сообщение от Van111 Посмотреть сообщение
а чё MVC++ 2008 так не считает?
Потому что, David Sylva не прав
 
Текущее время: 05:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru