Составители:
Рубрика:
63
}
Попытка доступа к члену данных x для объекта с приводит к ошибке
транслятора “Member is ambiguous A::x and A::x”. Эта ошибка означает, что
транслятор не может определить, какому из двух компонент x класса необходимо
присвоить новое значение. Неразрешимыми именами для транслятора будут
также следующие с.C::x и c.A::x. Решением проблемы является использование
квалифицированных имен компонент с использованием имен классов B
и D. Для
транслятора однозначно различаются следующие имена компонент: с.B::x
(компонента, унаследованная через класс В) и c.D::x (компонента, унаследованная
через класс D).
Рассмотрим пример программы, реализующей множественное
наследование. В программе реализованы класс Window, описывающий окно в
текстовом режиме, и класс Text, описывающий буфер для хранения текстовой
информации, а на их основе определен
класс WinText, описывающий окно в
текстовом режиме с возможностью отображения в нем текста.
//Листинг 27. Программа, использующая множественное наследование классов
#include<stdio.h>
#include<string.h>
#include <conio.h>
class Window //класс «окно в текстовом режиме»
{ protected:
int x,y; //координаты левого верхнего угла окна
int dx,dy; //размеры окна
int color,backcolor; //основной и фоновый цвета окна
public:
Window(int xb=10, int yb=10, int a=60,int b=20) //конструктор
{ x=xb;y=yb;dx=a;dy=b;
backcolor=1;color=15;}
void draw(); //функция изображения окна на экране
};
void Window::draw()
{ textbackground(backcolor);
for(int i=x;i<x+dx;i++)
for (int j=y;j<y+dy;j++)
{
gotoxy(i,j);
cprintf(" ");
}}
} Попытка доступа к члену данных x для объекта с приводит к ошибке транслятора “Member is ambiguous A::x and A::x”. Эта ошибка означает, что транслятор не может определить, какому из двух компонент x класса необходимо присвоить новое значение. Неразрешимыми именами для транслятора будут также следующие с.C::x и c.A::x. Решением проблемы является использование квалифицированных имен компонент с использованием имен классов B и D. Для транслятора однозначно различаются следующие имена компонент: с.B::x (компонента, унаследованная через класс В) и c.D::x (компонента, унаследованная через класс D). Рассмотрим пример программы, реализующей множественное наследование. В программе реализованы класс Window, описывающий окно в текстовом режиме, и класс Text, описывающий буфер для хранения текстовой информации, а на их основе определен класс WinText, описывающий окно в текстовом режиме с возможностью отображения в нем текста. //Листинг 27. Программа, использующая множественное наследование классов #include#include #include class Window //класс «окно в текстовом режиме» { protected: int x,y; //координаты левого верхнего угла окна int dx,dy; //размеры окна int color,backcolor; //основной и фоновый цвета окна public: Window(int xb=10, int yb=10, int a=60,int b=20) //конструктор { x=xb;y=yb;dx=a;dy=b; backcolor=1;color=15;} void draw(); //функция изображения окна на экране }; void Window::draw() { textbackground(backcolor); for(int i=x;i
Страницы
- « первая
- ‹ предыдущая
- …
- 61
- 62
- 63
- 64
- 65
- …
- следующая ›
- последняя »