Здравствуйте, Аноним, Вы писали:
А>//A.h
А>namespace A {
А> extern static int a; // это означает что переменная объявлена но инициализоваться будет потом
А>}
А>//A.cpp
А>static A::a = 0;
А>//B.cpp
А>include "A.h"
А>A::a = 10;
А>Компилятор всё время не доволен!
А чего ты хочешь добиться?
Чтобы в кажой единице трансляции переменная A::a была одна и та же или чтобы они были разными?
Если одна и та же, то логично сделать так:
//A.h
namespace A {
extern int a;
}//namespace A
//A.cpp
#include "A.h"
int A::a = 0;
// B.cpp
#include "A.h"
void foo( int b )
{
A::a = b;
}
А если хочешь, чтобы была разной, то не понятно зачем объявлять в хедере предварительно. Ведь тогда в каждой единице трансяции прийдётся определять... Но это тоже возможно, конечно, только ты сначала скажи, точно ли это то, что тебе нужно...
А>Разъясните плиз!
А>Спасибо.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском