Avatar billede nak-m Nybegynder
14. juli 2002 - 14:19 Der er 4 kommentarer og
1 løsning

fejl i kode! :(

når jeg skriver følgende kode kommer den med denne fejl(8 gange):

must #include <typeinfo> before using typeid

koden:

#include <iostream>
#include <cstdlib>
using namespace std;

class figure {
    protected:
        double x, y;
    public:
        figure(double i, double j) {
            x = i;
            y = j;
        }
        virtual double area() = 0;
};

class triangle : public figure {
    public:
        triangle(double i, double j) : figure(i, j) {}
        double area() {
            return x * 0.5 * y;
        }
};

class rectangle : public figure {
    public:
        rectangle(double i, double j) : figure(i, j) {}
        double area() {
            return x * y;
        }
};

class circle : public figure {
    public:
        circle(double i, double j=0) : figure(i, j) {}
        double area() {
            return 3.14 * x * y;
        }
};

figure *factory()
{
    switch(rand() % 3 ) {
        case 0: return new circle(10.0);
        case 1: return new triangle(10.1, 5.3);
        case 2: return new rectangle(4.3, 5.7);
    }
    return 0;
}

int main()
{
    figure *p;
    int i;

    int t=0, r=0, c=0;

    for(i=0; i<10; i++) {
        p = factory();

        cout << "Objekt: " << typeid(*p).name();
        cout << ".  ";

        if(typeid(*p) == typeid(triangle)) t++;
        if(typeid(*p) == typeid(rectangle)) r++;
        if(typeid(*p) == typeid(circle)) c++;

        cout << "Areal " << p->area() << endl;
    }
    cout << endl;
    cout << "Objekter:\n";
    cout << "  Trekanter: " << t << endl;
    cout << "  Rektangler: " << r << endl;
    cout << "  Cirkler: " << c << endl;

    return 0;
}
Avatar billede nicidem Nybegynder
14. juli 2002 - 14:44 #1
#include <iostream.h>
#include <cstdlib.h>
(skal du ikke have .h med?)
Avatar billede nak-m Nybegynder
14. juli 2002 - 14:56 #2
nej jeg bruger jo namespace :)
Avatar billede nak-m Nybegynder
14. juli 2002 - 14:58 #3
mangler jeg måske at include noget?
Avatar billede nak-m Nybegynder
14. juli 2002 - 15:02 #4
haha havde glemt #include <typeinfo> ;)
Avatar billede soepro Nybegynder
30. juli 2002 - 13:46 #5
nak-m > som fejlbeskeden sagde !
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester