У меня есть одна проблема с именами. В нем говорится «Множественное определение phys1 :: x», почему? Посмотрите на мой код:namespaces в заголовках в C++
main.cpp
#include <cstdlib>
#include <iostream>
#include "abcd.h"
using namespace phys1;
using namespace std;
int main(){
cout << "SD " << tits() << endl;
system("pause");
return 0;
}
abcd.h
#ifndef _ABCD_H_
#define _ABCD_H_
namespace phys1
{
double xx = 9.36;
}
double tits();
#endif
abcd.cpp
#include "abcd.h"
double tits(){
return phys1::xx;
}
Вы используете [зарезервированный идентификатор ] (http://stackoverflow.com/questions/228783/what-are-the-rules-about-using-an-underscore-in-ac-identifier). – chris
@chris: для детей-программистов очень часто использовать зарезервированные идентификаторы только **, потому что ** они зарезервированы. Это как сказать мальчику «не трогай это». Я видел это злоупотребление снова и снова даже в известных библиотеках (и без всякой причины ... «ABCD_H_INCLUDED» выглядел бы еще лучше). – 6502
@MarounMaroun sure: D – rint