Преобразование типа.Явное преобразование типа



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

Явные преобразования типов Для преобразования с минимальным контролем можно использовать операцию staic_cast. static_cast<тип> (выражение)

Она позволяет выполнять преобразования, не проверяя типы выражений во время выполнения, а основываясь на сведениях, полученных при компиляции. Операция static_cast позволяет выполнять преобразования не только указателя на базовый класс к указателю на производный, но и наоборот. Для преобразований не связанных между собой типов используется reinterpret_cast.


18.Преобразование типов определённых в программе

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

На первом этапе выполняется попытка использовать стандартные преобразования типов. Если это невозможно, то компилятор использует преобразования, определенные пользователем.

Конструктор с одним аргументом можно явно не вызывать.

class my_class { double x,y; public:

my_class(double X){x=X; y=x/3;} double summa(); };

double my_class::summa() { return x+y; } void main()

{ double d; my_class my_obj1(15), my_obj2=my_class(15),

my_obj3=15 cout << my_obj1.summa() << endl;

cout << my_obj2.summa() << endl;

cout << my_obj3.summa() << endl; }

 


19.Потоки ввода\вывода.Состояние потока.Пример обработки ошибки в потоке.

В С++ ввод-вывод данных производится потоками байт. Поток (последовательность байт) – это логическое устройство, которое выдает и принимает информацию от пользователя и связано с физическими устройствами ввода-вывода. При операциях ввода байты направляются от устройства в основную память. В операциях вывода – наоборот.

cout – поток стандартного вывода;

cin – поток стандартного ввода;

Объект cout позволяет выводить информацию на стандартное устройство вывода – экран. Формат записи cout имеет следующий вид: сout << data;

data – это переменные, константы, выражения или комбинации всех трех типов.

Для ввода информации с клавиатуры используется объект cin. Формат записи cin имеет: cin>>data;

\\\

Поток в С++ это абстрактное понятие, относящееся к переносу информации от источника к приемнику. Системы ввода-вывода С и С++ основываются на понятии потока. Потоки iostream или ostream имеют связанное с ними состояние. В классе ios, базовом для классов iostream и ostream, имеется несколько public функций, позволяющих проверять и устанавливать состояние потока: inline int ios::bad() const { return state & badbit; }

inline int ios::eof() const { return state & eofbit; }

Так, если было установлено состояние ошибки, то попытка выполнить ввод/вывод будет игнорироваться до тех пор, пока не будет устранена причина ошибки и биты ошибки не будут сброшены функцией clear().

 


Дата добавления: 2015-12-21; просмотров: 20; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!