Можно ли перегружать базовые типы в С++? Можно ли реализовать перегрузку базового типа в С++ ?
Например перегрузить операторы сравнения == для char/char*.
Необходимо мне это, чтобы удобно работать с шаблонным деревом, а не переделывать под char*.

21 Авг 2019 в 07:08
201 +1
1
Ответы
1

В C++ нельзя перегружать базовые типы, такие как char, int, double и т.д. Но вы можете создать пользовательские типы данных, например, классы, и перегрузить операторы для этих типов.

Для вашего примера, чтобы перегрузить операторы сравнения для типа char, вы можете создать пользовательский класс, который содержит переменную типа char, и перегрузить операторы сравнения для этого класса. Например:

class MyChar {
private:
char value;
public:
MyChar(char c) : value(c) {}
bool operator<(const MyChar& other) {
return value < other.value;
}
bool operator>(const MyChar& other) {
return value > other.value;
}
bool operator==(const MyChar& other) {
return value == other.value;
}
};
int main() {
MyChar a('a');
MyChar b('b');
if (a < b) {
std::cout << "a is less than b" << std::endl;
}
return 0;
}

Таким образом, вы можете использовать класс MyChar вместо char для работы с шаблонным деревом и перегрузить операторы сравнения для этого класса.

20 Апр 2024 в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир