Суббота, 18.05.2024, 13:15Приветствую Вас Гость | RSS
IT Solutions
Меню сайта
Наш опрос
Оцените мой сайт
Всего ответов: 407
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Каталог статей


Главная » Статьи » Мои статьи

Неявные преобразования типов
1. По умолчанию используйте "explicit" в конструкторах
      
2. Используйте для преобразований типов именованные функции, а не соответствующие операторы:

Именно поэтому в стандартном классе "string" отсутствует operator const char*();

Исключения:

При нечастом и осторожном использовании неявные преобразования могут сделать код более коротким и интуитивно более понятным.
    Стандартный std::string определяет неявный конструктор, который получает один аргумент типа const char*.
     Такое решение отлично работает, потому что:
1. Не имеется автоматического преобразования std::string в const char*: такое преобразование выполняют c_str() и data()
2. Все операторы сравнений, определённые для std::string (например, ==, !=, <) перегружены для сравнения const char* и std::string в любом порядке.

Это позволяет избежать создания скрытых временных переменных.
Но при этом возникают определённые неприятности, связанные с перегрузкой функций.
    void Display(int);  void Display(std::string);
     Display(NULL);    /* вызов Display(int)

Категория: Мои статьи | Добавил: B@R_LOG (18.11.2013)
Просмотров: 922 | Теги: Неявные преобразования типов в C++ | Рейтинг: 5.0/3
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа
Категории раздела
Мои статьи [11]
Поиск
Друзья сайта
  • МЫ в "ВКонтакте"
  • Система Orphus