Перегрузка методов класса в C++.

Методы класса можно перегружать также, как и обычные функции. Это очень удобно, когда нужно сделать несколько конструкторов, которые будут принимать разные параметры.

Например, создадим основу класса dehnical, который реализует длинную арифметику для чисел произвольной точности. В таких случаях, обычно хранят число внутри строки, а логика математических операций реализуется через написание соответствующих операторов класса.

Нужно сделать так, чтобы в конструктор этого класса можно было передавать и строку и число типа double.

// Передача в конструктор строки
dehnical num1("10000000.999999");
// Передача числа
dehnical num2(10000.0);

Для того, чтобы класс поддерживал такую универсальность, сделаем два разных конструктора для строки и числа:

class dehnical
{
public:
    /*
     * Конструктор, принимающий в качестве аргумента строку, содержащую число
    */
    dehnical(string number)
    {
        clog << "First constructor called\n";
    }

    /**
     * Конструктор принимает число типа double
    */
    dehnical(double number)
    {
        clog << "Second constructor called\n";
    }

private:
    string number;
};

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

 
Поделиться в facebook
Facebook
Поделиться в twitter
Twitter
Поделиться в vk
VK
Поделиться в google
Google+
Поделиться в email
Email

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Группа в VK

Помощь проекту

Обнаружили опечатку?

Сообщите нам об этом, выделите текст с ошибкой и нажмите Ctrl+Enter, будем очень признательны!

Свежие статьи

Похожие статьи

Локальные и глобальные переменные в С++.

Локальные и глобальные переменные в С++.

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

 
Математические функции в С++

Математические функции в С++

В языке С++ математические функции определены в заголовочном файле <cmath> функции выполняющие некоторые часто используемые математические задачи. Например, нахождение корня, возведение в степень, sin(), cos()

 
Работа с файлами в С++.

Работа с файлами в С++.

Файл – именованный набор байтов, который может быть сохранен на некотором накопителе. Файл имеет уникальное имя, например файл.txt. Для работы с файлами в С++ необходимо

 
Структуры в C++.

Структуры в C++.

Структура – это совокупность переменных, объединенных одним именем, предоставляющая общепринятый способ совместного хранения информации. Объявление структуры приводит к образованию шаблона, используемого для создания объектов структуры.

 

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: