Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 14.06.2021
Сообщений: 17
1

Приведение экземпляра класса к типу bool

31.03.2023, 20:34. Показов 202. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
C++
1
2
3
4
File file = SD.open("arduino.txt", FILE_READ);
  if (file) {
int rlen = file.available();
   ........   }
Такой вопрос. file в примере является ссылкой на класс File, верно?

Дальше идет условный оператор, в котором в качестве условия эта ссылка.
Хотя ссылка не является числом, а объектом класса. Как это работает?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.03.2023, 20:34
Ответы с готовыми решениями:

Как можно изменить атрибут экземпляра одного класса при добавлении/изменении экземпляра другого класса
Мне нужно, чтобы при создании города/деревни уже существующей области (т.е. уже создана область с...

Как создать атрибут экземпляра класса в методе экземпляра класса?
Здравствуйте. Подскажите, как в javascript создать новый атрибут экземпляра класса в методе...

Недопустимое приведение bool к bool
Непонятная мне ошибка при проверке занятости контрола WebBrowser. На скрине WebB - экземпляр...

Bool и Bool? приведение типов
Доброго дня. На строку Properties.Settings.Default.IsCheckedtargettime =...

Создание экземпляра класса - наследника экземпляра другого класса
Имеется два класса: класс Layer и класс-наследник Neuron. Я создал экземпляр класса Layer l1 и...

4
0 / 0 / 0
Регистрация: 14.06.2021
Сообщений: 17
31.03.2023, 21:00  [ТС] 2
чтоб новую тему не открывать , спрошу тут
Вопрос такой:
C++
1
2
3
4
File file = SD.open("arduino.txt", FILE_READ);
  if (file) {
int rlen = file.available();
   ........   }
file в примере является ссылкой на класс File, верно?

Дальше идет условный оператор, в котором в качестве условия эта ссылка.
Хотя ссылка не является числом, а объектом класса. Как это работает?
0
3697 / 2647 / 761
Регистрация: 29.06.2020
Сообщений: 9,800
31.03.2023, 21:22 3
Цитата Сообщение от Mitya37 Посмотреть сообщение
в котором в качестве условия эта ссылка.
Хотя ссылка не является числом,
Класс может иметь оператор приведения к void*, утрировано к числу.
Или к bool

Добавлено через 16 минут
Пример :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
#include <cstddef>
struct File{
    File(int a):a{a}{};
    /*
    operator bool() const{
        return a;  
    }*/
 
    operator void*() const{
        return reinterpret_cast<void*>(static_cast<intptr_t>(a));  
    }     
private:    
    int a;
};
int main()
{
    File f1(1);
    if (f1)
        std::cout << "File 1 exists\n";
    else
        std::cout << "File 1 missing\n";
    File f2(0);
    if (f2)
        std::cout << "File 2 exist\n";
    else
        std::cout << "File 2 missing\n";
}
Для второго преобразования, даже не знаю, корректно ли оно.
Как же я давно не занимался такими опасными вещами )
Хотел опробовать этот оператор преобразования, да все никак не

Добавлено через 1 минуту
Первый вариант - приведение к bool.
Второй к void*
0
0 / 0 / 0
Регистрация: 14.06.2021
Сообщений: 17
31.03.2023, 21:34  [ТС] 4
Цитата Сообщение от SmallEvil Посмотреть сообщение
Первый вариант - приведение к bool.
Второй к void*
вроде понятно, спасибо.
Из-за таких извращений плюсы по возможности стараюсь обходить стороной, где то может удобно, а где то наоборот может привести к ошибкам.
0
3697 / 2647 / 761
Регистрация: 29.06.2020
Сообщений: 9,800
31.03.2023, 21:47 5
Цитата Сообщение от Mitya37 Посмотреть сообщение
где то наоборот может привести к ошибкам
На любом ЯП неправильное использование чего-либо, приведет к ошибкам.
Суровая реальность.
С++ - сложный ЯП, сложнее я наверное не видел.
Но эта сложность - цена за все остальное. По другому в жизни не бывает, за все приходится платить.
0
31.03.2023, 21:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.03.2023, 21:47
Помогаю со студенческими работами здесь

Почему при вызове метода у экземпляра класса он сначала ищет у экземпляра
Всем привет, после прочтения Лутца про ООП появился такой вопрос почему при вызове метода у...

Создание экземпляра класса, разрушение экземпляра класса
Не могу найти информацию про разрущение экземпляра класса. Объясните пожалуйста, что это?

Создание нового экземпляра дочернего класса из экземпляра базового
Всем привет! Извиняюсь, если вопрос глупый, но что-то не смог найти конкретный ответ на него... ...

При создании экземпляра класса, создается 2 экземпляра вместо 1
Подсчет экземпляров ведется с помощью статического члена num_dogs, который во всех трех...

Сложение экземпляра базового класса и экземпляра наследника
Добрый вечер! Моя задача - сложить экземпляр базового класса и наследника. Нужно сделать так, чтобы...

Приведение к типу
В чем разница? static_cast&lt;int&gt;(a); и (int)a


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Закрытая тема Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru