28.05.2014, 21:14. Просмотров 249. Ответов 5
есть класс у него 2 дочерних, есть статическая функция вызывающая ф-ю вывода на экран все объетты класса+дочерние, нужно написать такую же виртуальную функцию, что бы она принимала только по одному объекту\
C++ |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
| #include <iostream>
using namespace std;
class A
{
private:
int a;
public:
A()
{
a=0;
}
A(int d)
{
a=d;
}
virtual void print();
static void out(A** m, int elementsNum)
{
for(int i = 0; i < elementsNum; i++)
m[i]->print();
}
};
class B: public A
{
private:
int b;
public:
void print()
{
cout<< "B="<<b<<endl;
A::print();}
};
class C: public B
{
private:
int c;
public:
void print()
{
cout<< "C="<<c<<endl;
B::print();}
};
int main()
{
int elementsNum = 3;
A **mass = new A*[elementsNum];
mass[0] = new C;
mass[1] = new B;
mass[2] = new A;
A::out(mass, elementsNum);
return 0;
}; |
|
есть такая мысль:
C++ |
1
2
3
4
5
6
7
8
| switch (?? i) //вот не знаю каких должен быть тип объекта что бы можно было так передавать объект
{
A: obj=A;
B: obj=B;
C: obj=C;
}
void f( ??? =obj) // тут через виртуальную наверное надо сделать но опять же тип объекта я хз
{ obj-> print();} |
|
помогите пожалуйста