История изменений
Исправление Zodd, (текущая версия) :
p1 и p2 - это должно быть внутри класса. Вот после исправлений:
#include <iostream>
using namespace std;
class A {
public:
double p1, p2;
virtual void fun() = 0;
virtual ~A() {}
};
class B: public A {
public:
void fun() {cout << p1+p2 << endl;}
virtual ~B() {}
};
class C: public A {
public:
void fun() {cout << p1-p2 << endl;}
virtual ~C() {}
};
void proc(A** a) {
for (int i = 0; i < 2; ++i)
a[i]->fun();
}
int main() {
B b;
C c;
b.p1 = 2.0;
b.p2 = 1.5;
c.p1 = 3.0;
c.p2 = -0.5;
A* a[2];
a[0]=&b;
a[1]=&c;
proc(a);
return 0;
}
Что-то я устал сегодня и много ошибок делаю(
Исправление Zodd, :
p1 и p2 - это должно быть внутри класса. Вот после исправлений:
#include <iostream>
using namespace std;
class A {
public:
double p1, p2;
virtual void fun() = 0;
virtual ~A() {}
};
class B: public A {
public:
void fun() {cout << p1+p2 << endl;}
virtual ~B() {}
};
class C: public A {
public:
void fun() {cout << p1-p2 << endl;}
virtual ~C() {}
};
void proc(A** a) {
for (int i = 0; i < 2; ++i)
a[i]->fun();
}
int main() {
B b;
C c;
b.p1 = 2.0;
b.p2 = 1.5;
c.p1 = 3.0;
c.p2 = -0.5;
A* a[2];
a[0]=&b;
a[1]=&c;
proc(a);
}
Что-то я устал сегодня и много ошибок делаю(
Исходная версия Zodd, :
Вот после исправлений:
#include <iostream>
using namespace std;
class A {
public:
double p1, p2;
virtual void fun() = 0;
virtual ~A() {}
};
class B: public A {
public:
void fun() {cout << p1+p2 << endl;}
virtual ~B() {}
};
class C: public A {
public:
void fun() {cout << p1-p2 << endl;}
virtual ~C() {}
};
void proc(A** a) {
for (int i = 0; i < 2; ++i)
a[i]->fun();
}
int main() {
B b;
C c;
b.p1 = 2.0;
b.p2 = 1.5;
c.p1 = 3.0;
c.p2 = -0.5;
A* a[2];
a[0]=&b;
a[1]=&c;
proc(a);
}
Что-то я устал сегодня и много ошибок делаю(