2013-10-27 3 views
0

Я знаю, что нет конкретного правила использования или объявления строкового литерала, например, например, в моем классе, я хочу использовать строковый литерал «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?

Спасибо!

+2

Все зависит от того, существует ли у каждого класса 'instance' отдельное имя, а затем сделайте его частной переменной, инициализированной во время построения. Если одно и то же имя разделяется между всеми экземплярами класса, сделайте его статическим и закрытым. – Brandon

ответ

1

Выполнение этой задачи private static const char* в CFoo удовлетворит ваши требования.

Смежные вопросы