С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Пространство имен в многофайловной программе - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Примитив к.игры, проблемы в классе http://www.cyberforum.ru/cpp-beginners/thread343965.html
Проблема показана в атаче Помогите пожалуйста, что не так #include "stdafx.h" #include <iostream> #include "lang.h" using namespace std; enum Suit {clubs,diamonds,hearts,spades}; const int...
C++ atof и "фальшивый ноль" Нужно получая аргументы в виде строки (char*) распознать цифры, atof для этого подходит хорошо, но есть один минус - как же мне узнать когда atof возвращает 0.0 то это он распознал число 0.0 в... http://www.cyberforum.ru/cpp-beginners/thread343960.html
fstream: открытие на запись C++
fstream a("file.txt",ios::out); a<<"abc\n"; a.close(); Перезаписывает файл полностью даже без флага ios::trunc. fstream a("file.txt",ios::out|ios::in); a<<"abc\n"; a.close(); Перезаписывает...
C++ Работа с string в С++
Переменная string str = "123456". Необходимо второй элемент переменной str (str) преобразовать в число и передать в переменную int i. Как это можно сделать?
C++ Модули программы http://www.cyberforum.ru/cpp-beginners/thread343895.html
Привет! Недавно начал изучать си++, и у меня возник такой вопрос: как разместить класс или функцию в отдельном модуле.
C++ Лучшая книга по с++ для новичков Какая самая лучшая книга для новичков в c++ Вот несколько вариантов: С++ для начинающих. Шаг за шагом - Герберт Шилдт Полный справочник по C++ - Герберт Шилдт C++: базовый курс - Герберт Шилдт... подробнее

Показать сообщение отдельно
Mr.X
Эксперт С++
3051 / 1696 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
21.08.2011, 20:43
Цитата Сообщение от grizlik78 Посмотреть сообщение
На самом деле всё просто. Функции определяются в глобальном пространстве имён.
В файле file1.cpp вместо
C++
1
2
using namespace std;
using namespace SALES;
используй
C++
1
2
3
4
5
namespace SALES
{
 using namespace std;
 // ... Code here ...
}
Страуструп так делать не рекомендует, считая более предпочтительным объявлять каждую функцию
с квалификатором, например:
C++
1
2
3
4
void SALES::setSales (Sales & s, double ar[], int n)
{
    //...
}
Он объсняет это тем, что если в данном пространстве имен не была объявлена такая функция, или
сигнатура определения отличается от сигнатуры объявления, то компилятор способен отловить эту
ошибку. Если же определять функцию в повторном открытии пространства имен, то компилятор в
таких случаях просто примет это определение за определение новой функции.
3
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.