ВУЗ:
Составители:
Рубрика:
Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.
Вызвать данный оператор явно с указанием типа данных, к которому
осуществляется преобразование, можно следующим образом:
. . .
Group gr991("991Э", 12);
cout << "Средний балл учебной группы " << (double) gr991;
. . .
Также возможен неявный вызов данного оператора:
double aM = gr990;
Когда преобразование осуществляется к типу класса, должен
создаваться объект этого класса. Такое преобразование делают
конструкторы с одним параметром. Например, пусть требуется
преобразовать символьную строку, содержащую номер группы, в объект
класса Group. К этому конструктору можно обратиться как к оператору
преобразования типа, указав имя класса явно, или, не указывая его
(неявное преобразование):
. . .
char* numGr = "991Б";
Group gr991B = (Group)numGr;// явное преобразование
Group gr991B = numGr; // неявное преобразование
. . .
Использование методов с одинаковым именем в разных классах.
Несколько классов могут иметь методы с одинаковыми именами. Это
означает, что действия, выполняемые одноименными методами, могут
различаться в зависимости от того, к какому из классов относится тот или
иной метод. Например, в классе Matrix определим оператор сложения
двух матриц:
// операция сложения двух матриц
Matrix Matrix::operator + (Matrix& ob)
{
if(ob.n == n && ob.m == m)
{
Matrix temp(m, n);
for(int i = 0; i < m; i++)
for(int j = 0; j < n; j++)
temp.a[i][j] = a[i][j] + ob.a[i][j];
return temp;
88
Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.
Вызвать данный оператор явно с указанием типа данных, к которому
осуществляется преобразование, можно следующим образом:
. . .
Group gr991("991Э", 12);
cout << "Средний балл учебной группы " << (double) gr991;
. . .
Также возможен неявный вызов данного оператора:
double aM = gr990;
Когда преобразование осуществляется к типу класса, должен
создаваться объект этого класса. Такое преобразование делают
конструкторы с одним параметром. Например, пусть требуется
преобразовать символьную строку, содержащую номер группы, в объект
класса Group. К этому конструктору можно обратиться как к оператору
преобразования типа, указав имя класса явно, или, не указывая его
(неявное преобразование):
. . .
char* numGr = "991Б";
Group gr991B = (Group)numGr;// явное преобразование
Group gr991B = numGr; // неявное преобразование
. . .
Использование методов с одинаковым именем в разных классах.
Несколько классов могут иметь методы с одинаковыми именами. Это
означает, что действия, выполняемые одноименными методами, могут
различаться в зависимости от того, к какому из классов относится тот или
иной метод. Например, в классе Matrix определим оператор сложения
двух матриц:
// операция сложения двух матриц
Matrix Matrix::operator + (Matrix& ob)
{
if(ob.n == n && ob.m == m)
{
Matrix temp(m, n);
for(int i = 0; i < m; i++)
for(int j = 0; j < n; j++)
temp.a[i][j] = a[i][j] + ob.a[i][j];
return temp;
88
Страницы
- « первая
- ‹ предыдущая
- …
- 86
- 87
- 88
- 89
- 90
- …
- следующая ›
- последняя »
