Re: Может ты про extern и const?
От: Erop Россия  
Дата: 22.10.07 21:03
Оценка:
Здравствуйте, Аноним, Вы писали:

А>//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;
}


А если хочешь, чтобы была разной, то не понятно зачем объявлять в хедере предварительно. Ведь тогда в каждой единице трансяции прийдётся определять... Но это тоже возможно, конечно, только ты сначала скажи, точно ли это то, что тебе нужно...
А>Разъясните плиз!

А>Спасибо.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.