我有一個小程序,基本上向用戶提示問題,閱讀答案,檢查其有效性等等,直到完成RPG字符的創建。我迅速獲得了幾個班級,每個班級都與一堆要存儲的消息相關。在C++命名空間中存儲大量消息
我的問題是:什麼是存儲這些消息的最佳方式?
我的第一個(髒),嘗試是有一個單獨的文件messages.hpp:
namespace M
{
string const message1("what's your name ?");
// + many others
}
但許多類依賴於這個文件,它的任何微小的變化暗示很長的編譯時間。
因此,爲了重新分配消息,我想將相關消息包含爲需要它們的類的靜態成員,但是我發現它讓我的類頭可讀性受損。所以,我很困惑:我可以創建一個類中的子名字空間,這將是這樣一個消息收集:
// monster.h
class Monster
{
// members and methods declared here
};
namespace Monster::Messages
{
string const message1("what's your name ?");
// + others messages only used by Monster
}
,並可能是這樣使用的:
// monster.cpp
Monster::Monster()
{
cout << Messages::message1 << endl;
}
但後來,我想知道:
- 會的
Monster::messages
所有的消息被複製爲類Monster
的每個實例? - 將
Monster::messages
的所有消息複製到包括monster.hpp
(靜態鏈接)在內的所有文件中? - 這些消息是否在
Monster
中被視爲成員,靜態成員或根本不成員? - 如果我在Monster :: messages中使用
static
關鍵字會發生什麼, 它具有靜態鏈接或靜態成員的含義?
當然,這是不好的做法嗎?有一個聰明的方法嗎?
這不是數據庫的用途嗎? –