В чем причина выбора API ниже:
QString QString::fromStdString(const std::string & str) [static]
Почему существует необходимость вызова статической функции, когда у нас может быть конструктор следующим образом:
QString::QString(const std::string & str)
Аналогичные конструкторы для представления строки c (char *), std :: string являются исключением. В чем причина этого?
Qt предшествует explicit
конструкторам, и он не может сломать своих существующих клиентов безвозмездно. Еще одна причина заключалась в том, что std::string
и QString
необязательно находятся в одной кодировке/кодовой странице, а статические методы явно указывают на то, что происходит более дорогое преобразование.
pattern
статической функции ...