LINUX.ORG.RU

История изменений

Исправление 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);
}

Что-то я устал сегодня и много ошибок делаю(