Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.05.2015, 15:37   #1
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию Неименованные пространства имен

Всем доброго дня !!!

При изучении темы неименованные пространства имен столкнулся с проблемой.

Автор привел такой код.
Безым.JPG

В двух файлах хранятся совершенно одинаковые неименованные пространства имен

Про ошибку компиляции автор нечего не намекнул. Из эго слов все отработает нормально.

Но у меня возник один вопрос к автору : какая-же все же вызывается функция и из какого файла.

Помогите разобраться с этим вопросом.

Последний раз редактировалось Stilet; 08.05.2015 в 17:39.
RAFA91 вне форума Ответить с цитированием
Старый 08.05.2015, 16:58   #2
still_alive
Great Code Monkey
Форумчанин
 
Аватар для still_alive
 
Регистрация: 09.08.2007
Сообщений: 533
По умолчанию

Цитата:
Сообщение от RAFA91 Посмотреть сообщение
Про ошибку компиляции автор нечего не намекнул.
Он не должен постоянно повторять элементарные вещи. Ясно же, что это не полный код, нужно еще написать определение функции. И объявить ptr.

Цитата:
Сообщение от RAFA91 Посмотреть сообщение
Но у меня возник один вопрос к автору : какая-же все же вызывается функция и из какого файла.
Встречный вопрос к тебе: зачем вообще нужны неименованные пространства имен? Как только на него ответишь, тогда ответишь и на свой вопрос.
still_alive вне форума Ответить с цитированием
Старый 08.05.2015, 17:24   #3
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

честно говоря я и обратился на форум за помощью что-бы понять

работу неимен. простр. имен на конкретном примере.

___________________________________ _____________

анализируя слова автора написал этот код.

но он не работает. скажите пожалуйста где я накосячил ?

файл sasa1.cpp

Код:
#include <iostream>

using namespace std;

namespace 

{
	void dasa() {cout<<"\nsasa1.cpp\m";}
}
файл sasa2.cpp

Код:
#include <iostream>

using namespace std;

namespace 

{
	void dasa() {cout<<"\nsasa2.cpp\m";}
}
файл где main

Код:
#include <conio.h>
 
#include "sasa1.cpp" // нужно-ли ?
 
#include "sasa2.cpp" // нужно-ли ?
 
int main()
 
{   
    dasa(); //вызов dasa() но из какого файла ?
    
    getch();
 
    return 0;
 
}
RAFA91 вне форума Ответить с цитированием
Старый 08.05.2015, 17:42   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
честно говоря я и обратился на форум за помощью что-бы понять
Тяк! Младец, что хочешь учиться, вот и давай начнем с самого главного.
Два простых правила:
1) Текст ошибок приводить обязательно! Ну или скриншот. Негоже заставлять нас телепатировать

2) Картинки, что ты вставляешь, пожалуйста обрезай, так чтоб они не занимали своим белым местом полстраницы. Эту я поправил и вставил в нужное место текста, следующие пожалуйста сам. Иначе обижусь.

Вот на первый вопрос и ответь.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.05.2015, 18:00   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Код:
#include "sasa1.cpp" // нужно-ли ?
Запомните простое правило: cpp инклудится в очень редких случаях и, если возникают сомнения, то не надо этого делать.

В вашем случае надо все три файла отдать компилятору (порядок может иметь значения),..
p51x вне форума Ответить с цитированием
Старый 09.05.2015, 12:05   #6
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

Stilet текст ошибки следующий

--------------------Configuration: zadanie_4_metod_simpsona - Win32 Debug--------------------
Compiling...
zadanie_4_metod_simpsona.cpp
c:\program files\microsoft visual studio\myprojects\копия sortirovka dvumernogo masiva\sasa2.cpp(8) : error C2084: function 'void __cdecl `anonymous-namespace':asa(void)' already has a body
Error executing cl.exe.

zadanie_4_metod_simpsona.exe - 1 error(s), 0 warning(s)

___________________________________ _________________

p51x как я понял из Ваших слов эти строки лишние ?

Код:
#include "sasa1.cpp"
 
#include "sasa2.cpp"

Последний раз редактировалось RAFA91; 09.05.2015 в 12:08.
RAFA91 вне форума Ответить с цитированием
Старый 09.05.2015, 12:24   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
already has a body
Вот дальше берешь словарик и переводишь. Получаешь фразу "Уже существует в виде тела (программы)". Я не в курсе для чего анонимные пространства имен нужны, но у тебя компиль намекает на задвоение функций, мол не понимает он какую же нужно использовать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.05.2015, 12:34   #8
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Цитата:
Сообщение от RAFA91 Посмотреть сообщение

Про ошибку компиляции автор нечего не намекнул. Из эго слов все отработает нормально.

Но у меня возник один вопрос к автору : какая-же все же вызывается функция и из какого файла.
Автор может быть просто идиотом и его не обязательно слушать. А еще у него может быть другой компилятор с другим поведением.
Хочется иметь проблемы, пользуясь какими-то странными конструкциями - тестируйте их на конкретном компиляторе. в разных компиляторах "мутный" код может работать как ему вздумается.
pu4koff вне форума Ответить с цитированием
Старый 09.05.2015, 13:10   #9
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

компилятор Microsoft Visual C++ 6.0

я никак не могу вьехать в эти неименованные пространства имен.

когда у пространства есть имя , то к нужной функции я обращаюсь

с помощью этого имени .

А тут даже не знаю как. Имени у пространства нету же.

Для меня это загадка.
RAFA91 вне форума Ответить с цитированием
Старый 09.05.2015, 13:40   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Для меня это загадка.
Ну и забей на нее. )
Лучше начни изучать самую важную загадку человечества! - Женщину
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка пространства имен Dimka-novitsek Общие вопросы C/C++ 1 06.02.2014 14:59
Пространства имен С++ Jumb0 Помощь студентам 1 10.03.2013 19:49
Не удалось найти имя типа или пространства имен "IBM" Stilet Общие вопросы .NET 6 20.05.2012 13:23
Объявление пространства имен T@Rak0t Общие вопросы C/C++ 5 21.09.2010 09:58
проблема с подключением пространства имен whiskaz Помощь студентам 2 24.03.2010 22:40