У меня есть вопросы на C ++, которые я хочу задать.
В заголовке я определил структуру следующим образом:
struct ObjectType
{
const int id;
const std::string& value;
ObjectType(const int id, const std::string& value = ""):
id (id)
, value (value)
{
}
};
В анонимном пространстве имен я определил три переменные:
namespace {
const ObjectType sample1 (0, "sample1");
const ObjectType sample2 (1, "sample2");
const ObjectType sample3 (2, "sample3");
}
Затем в моем unittest, когдаЯ пытаюсь использовать ObjectType, значение всегда будет NULL:
TEST(TestClass, test01)
{
std::cout << sample1.value << std::endl; // => This is always empty
}
Как я помню, поскольку я определил поле структуры как const , оно должно расширятьсявремя жизни входа.Затем sample1.value должно быть напечатано.Однако это не так. Кто-нибудь знает, почему это происходит?Спасибо!