Я знаю, что нет конкретного правила использования или объявления строкового литерала, например, например, в моем классе, я хочу использовать строковый литерал "MyName" и его единственный класс, который будет его использовать, например,
// CFoo.h
class CFoo
{
public:
CFoo();
~CFoo();
void printString();
}
// CFoo.cpp
CFoo::CFoo()
{
}
CFoo::~CFoo()
{
}
void CFoo::printString()
{
std::cout << "MyName" << std::endl;
}
Теперь я хочу, чтобы в "MyName" содержалось описательное имя, например NameLiter или что-то в этом роде. Должен ли я использовать препроцессор define или объявлять его глобальным в cpp как const std :: string? Или я должен сделать частную переменную-член и инициализировать ее в списке инициализаторов ctor?
Благодарю!
Создание private static const char*
в CFoo будет отвечать вашим требованиям.
instance
класса будет отдельное имя, сделайте его закрытой переменной, инициализированной во время построения. Если это имя является общим для всехinstances
класса, сделайте его статическим и закрытым.