Функция QT C ++ с необязательным параметром для строк - PullRequest
0 голосов
/ 21 марта 2012

У меня проблема с написанием функции toString на QT C ++.

Например, у меня есть это в моем заголовочном файле QString toString (QString delimiter = ":");и я получаю следующую ошибку

error: аргумент по умолчанию для параметра типа 'QString' имеет тип 'const char [3]'

Параметры otpional работали нормально для других типов, но, похоже,что компилятор интерпретирует ":" как тип char и, как таковой, выдает мне следующую ошибку (я думал, что символы используют '', оказывается, я ошибался).

Я погуглил эти вещи, но не смог найти ничего бесполезного, я симпатичен, что это легко исправить, но я новичок в этом языке.

Спасибо

1 Ответ

1 голос
/ 21 марта 2012

Ошибка компилятора говорит о том, что параметр имеет тип QString, но заданное вами значение по умолчанию имеет тип const char[3] (константный массив символов), потому что это строковый литерал.У QString есть конструктор, который принимает const char* (и запоминает затухание массивов в указатели), поэтому обычно он может выполнять неявное преобразование из const char* в QString, однако кажется, что конструктор был объявлен explicit и поэтому он должен вызываться явно.

Редактировать: Это не явно, заголовок просто необходимо включить:)

...