У меня есть класс, который выглядит так:
class MyClass {
public:
void drawText(const QString& rText);
void drawText(const std::string& rText);
};
Я перегрузил метод drawText()
, потому что хочу принять QString
, а также std::string
.
Но когда я пишу что-то вроде этого:
MyClass foo;
foo.drawText("Hello");
Компилятор жалуется, что вызов drawText()
неоднозначен.
Я понимаю, что из массива char компилятор не может выбирать между QString
или std::string
, потому что оба предоставляют подходящий конструктор.
Но есть ли у меня способ убедиться, что пользователь может использовать метод drawText()
, передав QString
или std::string
или массив char?