Здравствуйте,подскажите пожалуйста.
Я реализую класс Int
, перегружая операторы и реализуя некоторые функции для класса.
Я имею два конструктор с 1 аргументом и копирования.
Int(int val):value(val) {}//конструктор с 1 аргументом
Int(const Int& obj)//конструктор копирования
{
value=obj.value;
}
Тело функции main():
(создавая объект,используя ()
и =
)
int main()
{
Int n(10);
Int n2 = n;
Int n3(15);
Int n5 = 12;
std::cout << "Res plus: " << n + n3 << std::endl;
std::cout << "Res min: " <<n-n3 << std::endl;
std::cout << "Res multip: " << n*n2<< std::endl;
return 0;
}
Подскажите пожалуйста, как сделать защиту от дурака
от ввода букв и других символов? Т.е. чтобы я не смог определить объект как: Int="152";
или Int="abc";
,например.
Думаю,что нужно в конструкторе по умолчанию реализовать такую защиту...
Система типов - вполне достаточная защита...
Напишите
Int n5 = "12";
и вы получите ошибку.
Приведите пример, где ваш дурак пробьет защиту :)
Защита от дурака в С++ включена по умолчанию. Такой код просто не будет компилироваться. Так как нет допустимого преобразования из const char *
(которым является строка) в int
или Int
, а только для этих типов конструктор будет объявлен.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть два класса A и B как реализовать приведение типов друг в друга?
Есть класс AУ него есть поле Mutex m_mutex; - вопрос: как создать глобальный массив экземпляров класса A, у него есть конструктор, который принимает...
Суть задания состоит в том, что есть строка, и нужно вывести её, но слова в которых содержатся более 3х одинаковых букв вывести их '!'причём...
Элементами файла есть сведения об успеваемостиСколько в группе отличников и двоечников?Количество студентов неограничено