Я знаю, что нет конкретного правила использования или объявления строкового литерала, например, например, в моем классе, я хочу использовать строковый литерал «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?
Спасибо!
Все зависит от того, существует ли у каждого класса 'instance' отдельное имя, а затем сделайте его частной переменной, инициализированной во время построения. Если одно и то же имя разделяется между всеми экземплярами класса, сделайте его статическим и закрытым. – Brandon