Здравствуйте,подскажите пожалуйста.
Я реализую класс 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, а только для этих типов конструктор будет объявлен.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей