Запрет вводд строк в класс целого числа

335
26 мая 2017, 15:07

Здравствуйте,подскажите пожалуйста.

Я реализую класс 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"; ,например.

Думаю,что нужно в конструкторе по умолчанию реализовать такую защиту...

Answer 1

Система типов - вполне достаточная защита...

Напишите

Int n5 = "12";

и вы получите ошибку.

Приведите пример, где ваш дурак пробьет защиту :)

Answer 2

Защита от дурака в С++ включена по умолчанию. Такой код просто не будет компилироваться. Так как нет допустимого преобразования из const char * (которым является строка) в int или Int, а только для этих типов конструктор будет объявлен.

READ ALSO
Операция приведения типов С++

Операция приведения типов С++

Есть два класса A и B как реализовать приведение типов друг в друга?

283
Как сделать массив экземпляров класса с полем-мьютексом?

Как сделать массив экземпляров класса с полем-мьютексом?

Есть класс AУ него есть поле Mutex m_mutex; - вопрос: как создать глобальный массив экземпляров класса A, у него есть конструктор, который принимает...

323
Помогите разобраться со строками в с++

Помогите разобраться со строками в с++

Суть задания состоит в том, что есть строка, и нужно вывести её, но слова в которых содержатся более 3х одинаковых букв вывести их '!'причём...

271
Нужна помощ с файлами в с++ [требует правки]

Нужна помощ с файлами в с++ [требует правки]

Элементами файла есть сведения об успеваемостиСколько в группе отличников и двоечников?Количество студентов неограничено

247