Хотите прямо сейчас получить бесплатный видеокурс по программированию для начинающих?

С++ Использование explicit конструкторов

Октябрь 16, 2013

1377893462_construction_blue

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

#include <iostream>;
using namespace std;
class myclass {
 int a;
public: 
 myclass(int x) { a = x; }
 int geta() { return a; }
};
int main()
{
 myclass ob(4);
 cout << ob.geta();
 return 0;
}

Здесь конструктор класса myclass принимает один параметр. Обратите внимание на то как объявлен объект ob в функции main(). Значение 4 заданное в круглых скобках после имени ob представляет собой аргумент, который передается параметру х конструктора myclass(), а параметр х в свою очередь используется для инициализации члена а. Именно таким способом мы инициализируем члены класса обычно. Однако существует следующий альтернативный вариант инициализации. Например при выполнении следующей инструкции член а так же получит значение 4.

myclass ob = 4;

Если вам ненужно, чтобы такое неявное преобразование имело место, можно предотвратить его с помощью идентификатора explicit. Данное ключевое слово применяется только к конструкторам.



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

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

Поддержите проект

Хит продаж:

Случайный анекдот

Моя вторая книга

Что это???

Программирование для Android:

Мы вконтакте

Помощь сайту

Понравился сайт? Он сильно нуждается в раскрутке.

Чтобы помочь в раскрутке - опубликуйте ссылку на сайт (или любую его страницу) на любом другом сайте в интернете. Тогда сайт станет чуточку популярнее.

Или просто нажмите на кнопки социальных сетей которые стоят в конце каждой статьи

Вместе мы сможем сделать программирование более популярным и более понятным для всех!

Заранее спасибо!
Артём Кашеваров.