Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Problem z klasą abstrakcyjną

Ostatnio zmodyfikowano 2014-02-10 09:09
Autor Wiadomość
oputyk
Temat założony przez niniejszego użytkownika
Problem z klasą abstrakcyjną
» 2014-02-08 15:16:23
Kod:
C/C++
#ifndef kg_h_
#define kg_h_
#include<SFML\Graphics.hpp>
#include"OCW.h"
#include"CW.h"
class kg
{
public:
    virtual bool Draw( kg *& ) = 0;
};
#endif
A oto błędy:

Error 3 error C2143: syntax error : missing ';' before '{' c:\users\kamil i bartek\documents\pulpit\programowanie\c++\projekty\projekty visuala 2013\aplikacje okienkowe\sfml 2.0\bomba\bomba\KOB.h 7 1 Bomba
Error 2 error C2236: unexpected token 'class'. Did you forget a ';'? c:\users\kamil i bartek\documents\pulpit\programowanie\c++\projekty\projekty visuala 2013\aplikacje okienkowe\sfml 2.0\bomba\bomba\KOB.h 6 1 Bomba
Error 4 error C2447: '{' : missing function header (old-style formal list?) c:\users\kamil i bartek\documents\pulpit\programowanie\c++\projekty\projekty visuala 2013\aplikacje okienkowe\sfml 2.0\bomba\bomba\KOB.h 7 1 Bomba
Nie wiem o co chodzi kompilatorowi, ale kiedy wstawie
class KOB;
 przed definicją klasy, to wtedy pokazuje mi tylko ten błąd:

Error 2 error C2236: unexpected token 'class'. Did you forget a ';'? c:\users\kamil i bartek\documents\pulpit\programowanie\c++\projekty\projekty visuala 2013\aplikacje okienkowe\sfml 2.0\bomba\bomba\KOB.h 6 1 Bomba
Jeśli ktoś ma pomysł to proszę pisać. Z góry dzięki!
P-104246
pekfos
» 2014-02-08 16:47:40
Zmień nazwę klasy.
P-104250
oputyk
Temat założony przez niniejszego użytkownika
» 2014-02-09 10:56:35
Niestety nic to nie dało...

PS: Przebudowywałem projekt kilka razy i to też nic nie dało.
P-104297
pekfos
» 2014-02-09 11:11:01
W takim razie podaj więcej kodu.
P-104298
oputyk
Temat założony przez niniejszego użytkownika
» 2014-02-09 11:19:00
Nazwę klasy zmieniłem na
kg
.
Jest to klasa abstrakcyjna i kiedy jej używam np, w innych klasach to występują tam błędy, które mówią, że nie widzą klasy. Np. taka klasa:
C/C++
class KOB_Instrukcja
    : public kg
{
    OCW ob[ 15 ];
    CW * okno;
    kg * powrot;
public:
    KOB_Instrukcja( CW * Okno, kg * Powrot )
        : okno( Okno )
        , powrot( Powrot )
    {
        //...
    }
    bool Draw( kg *& OB );
};
i następujące błędy:

Error 19 error C2061: syntax error : identifier 'kg' c:\users\kamil i bartek\documents\pulpit\programowanie\c++\projekty\projekty visuala 2013\aplikacje okienkowe\sfml 2.0\bomba\bomba\KOB_Instrukcja.h 10 1 Bomba
Error 20 error C2061: syntax error : identifier 'kg' c:\users\kamil i bartek\documents\pulpit\programowanie\c++\projekty\projekty visuala 2013\aplikacje okienkowe\sfml 2.0\bomba\bomba\KOB_Instrukcja.h 28 1 Bomba
Error 21 error C2065: 'Powrot' : undeclared identifier c:\users\kamil i bartek\documents\pulpit\programowanie\c++\projekty\projekty visuala 2013\aplikacje okienkowe\sfml 2.0\bomba\bomba\KOB_Instrukcja.h 10 1 Bomba
Error 17 error C2143: syntax error : missing ';' before '*' c:\users\kamil i bartek\documents\pulpit\programowanie\c++\projekty\projekty visuala 2013\aplikacje okienkowe\sfml 2.0\bomba\bomba\KOB_Instrukcja.h 8 1 Bomba
Error 16 error C2504: 'kg' : base class undefined c:\users\kamil i bartek\documents\pulpit\programowanie\c++\projekty\projekty visuala 2013\aplikacje okienkowe\sfml 2.0\bomba\bomba\KOB_Instrukcja.h 5 1 Bomba
Error 22 error C2614: 'KOB_Instrukcja' : illegal member initialization: 'powrot' is not a base or member c:\users\kamil i bartek\documents\pulpit\programowanie\c++\projekty\projekty visuala 2013\aplikacje okienkowe\sfml 2.0\bomba\bomba\KOB_Instrukcja.h 11 1 Bomba
Error 18 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\users\kamil i bartek\documents\pulpit\programowanie\c++\projekty\projekty visuala 2013\aplikacje okienkowe\sfml 2.0\bomba\bomba\KOB_Instrukcja.h 8 1 Bomba
Myślę, że nie ma potrzeby pokazania większej ilości kodu, bo wszystkie klasy są zbudowane na tej samej zasadzie.
P-104299
pekfos
» 2014-02-09 12:24:42
Podaj OCW.h i CW.h. I podawaj całe pliki.
P-104305
oputyk
Temat założony przez niniejszego użytkownika
» 2014-02-09 12:30:20
C/C++
//CW.h
#ifndef CW_h_
#define CW_h_
#include<cstdlib>
#include"curses.h"
class CW
{
    struct pix
    {
        char ch = ' ';
        int cl = 1;
        pix() = default;
        pix( char CH, int CL )
            : ch( CH )
            , cl( CL )
        { }
    };
    unsigned int ax = 0;
    unsigned int ay = 0;
    unsigned int x = 0;
    unsigned int y = 0;
    unsigned int on = 0;
    unsigned int a = 0;
    unsigned int b = 1;
    bool cur = true;
    pix * plansza;
public:
    CW()
    {
        initscr();
        getmaxyx( stdscr, y, x );
        plansza = new pix[ x * y ];
        keypad( stdscr, TRUE );
        if( has_colors() == TRUE )
             start_color();
        else
             exit( 1 );
        //black - 0
        init_pair( 0, COLOR_BLACK, COLOR_BLACK );
        init_pair( 1, COLOR_WHITE, COLOR_BLACK );
        init_pair( 2, COLOR_RED, COLOR_BLACK );
        init_pair( 3, COLOR_GREEN, COLOR_BLACK );
        init_pair( 4, COLOR_BLUE, COLOR_BLACK );
        init_pair( 5, COLOR_YELLOW, COLOR_BLACK );
        init_pair( 6, COLOR_MAGENTA, COLOR_BLACK );
        init_pair( 7, COLOR_CYAN, COLOR_BLACK );
        //white - 1
        init_pair( 8, COLOR_BLACK, COLOR_WHITE );
        init_pair( 9, COLOR_WHITE, COLOR_WHITE );
        init_pair( 10, COLOR_RED, COLOR_WHITE );
        init_pair( 11, COLOR_GREEN, COLOR_WHITE );
        init_pair( 12, COLOR_BLUE, COLOR_WHITE );
        init_pair( 13, COLOR_YELLOW, COLOR_WHITE );
        init_pair( 14, COLOR_MAGENTA, COLOR_WHITE );
        init_pair( 15, COLOR_CYAN, COLOR_WHITE );
        //red - 2
        init_pair( 16, COLOR_BLACK, COLOR_RED );
        init_pair( 17, COLOR_WHITE, COLOR_RED );
        init_pair( 18, COLOR_RED, COLOR_RED );
        init_pair( 19, COLOR_GREEN, COLOR_RED );
        init_pair( 20, COLOR_BLUE, COLOR_RED );
        init_pair( 21, COLOR_YELLOW, COLOR_RED );
        init_pair( 22, COLOR_MAGENTA, COLOR_RED );
        init_pair( 23, COLOR_CYAN, COLOR_RED );
        //green - 3
        init_pair( 24, COLOR_BLACK, COLOR_GREEN );
        init_pair( 25, COLOR_WHITE, COLOR_GREEN );
        init_pair( 26, COLOR_RED, COLOR_GREEN );
        init_pair( 27, COLOR_GREEN, COLOR_GREEN );
        init_pair( 28, COLOR_BLUE, COLOR_GREEN );
        init_pair( 29, COLOR_YELLOW, COLOR_GREEN );
        init_pair( 30, COLOR_MAGENTA, COLOR_GREEN );
        init_pair( 31, COLOR_CYAN, COLOR_GREEN );
        //blue - 4
        init_pair( 32, COLOR_BLACK, COLOR_BLUE );
        init_pair( 33, COLOR_WHITE, COLOR_BLUE );
        init_pair( 34, COLOR_RED, COLOR_BLUE );
        init_pair( 35, COLOR_GREEN, COLOR_BLUE );
        init_pair( 36, COLOR_BLUE, COLOR_BLUE );
        init_pair( 37, COLOR_YELLOW, COLOR_BLUE );
        init_pair( 38, COLOR_MAGENTA, COLOR_BLUE );
        init_pair( 39, COLOR_CYAN, COLOR_BLUE );
        //yellow - 5
        init_pair( 40, COLOR_BLACK, COLOR_YELLOW );
        init_pair( 41, COLOR_WHITE, COLOR_YELLOW );
        init_pair( 42, COLOR_RED, COLOR_YELLOW );
        init_pair( 43, COLOR_GREEN, COLOR_YELLOW );
        init_pair( 44, COLOR_BLUE, COLOR_YELLOW );
        init_pair( 45, COLOR_YELLOW, COLOR_YELLOW );
        init_pair( 46, COLOR_MAGENTA, COLOR_YELLOW );
        init_pair( 47, COLOR_CYAN, COLOR_YELLOW );
        //magenta - 6
        init_pair( 48, COLOR_BLACK, COLOR_MAGENTA );
        init_pair( 49, COLOR_WHITE, COLOR_MAGENTA );
        init_pair( 50, COLOR_RED, COLOR_MAGENTA );
        init_pair( 51, COLOR_GREEN, COLOR_MAGENTA );
        init_pair( 52, COLOR_BLUE, COLOR_MAGENTA );
        init_pair( 53, COLOR_YELLOW, COLOR_MAGENTA );
        init_pair( 54, COLOR_MAGENTA, COLOR_MAGENTA );
        init_pair( 55, COLOR_CYAN, COLOR_MAGENTA );
        //cyan - 7
        init_pair( 56, COLOR_BLACK, COLOR_CYAN );
        init_pair( 57, COLOR_WHITE, COLOR_CYAN );
        init_pair( 58, COLOR_RED, COLOR_CYAN );
        init_pair( 59, COLOR_GREEN, COLOR_CYAN );
        init_pair( 60, COLOR_BLUE, COLOR_CYAN );
        init_pair( 61, COLOR_YELLOW, COLOR_CYAN );
        init_pair( 62, COLOR_MAGENTA, COLOR_CYAN );
        init_pair( 63, COLOR_CYAN, COLOR_CYAN );
        attron( COLOR_PAIR( 1 ) );
        on = 1;
    }
    ~CW()
    {
        endwin();
        attroff( on );
    }
    void ColorSet( int A, int B );
    void ColorSet( int ON = 1 );
    int ColorGetA();
    int ColorGetB();
    unsigned int CW::GetY();
    unsigned int CW::GetX();
    bool isKeyPressed();
    void setCursor( bool on = true );
    bool getCursor();
    void Draw( const char * what, int x = - 1, int y = - 1, int A = - 1, int B = - 1 );
    void Draw( const int what, int x = - 1, int y = - 1, int A = - 1, int B = - 1 );
    void Draw( const char what, int x = - 1, int y = - 1, int A = - 1, int B = - 1 );
    void Draw( const double what, int x = - 1, int y = - 1, int A = - 1, int B = - 1 );
    void Draw( const float what, int x = - 1, int y = - 1, int A = - 1, int B = - 1 );
    void Display();
    void Clear( int A =- 1, int B =- 1 );
};
#endif
C/C++
//OCW.h
#ifndef OCW_h_
#define OCW_h_
#include"CW.h"
class OCW
{
public:
    struct Vector2i
    {
        int x;
        int y;
        Vector2i( int X =- 1, int Y =- 1 )
            : x( X )
            , y( Y )
        { }
    };
    Vector2i position;
    char * txt;
    CW * okno;
    OCW()
    {
       
    }
    OCW( CW * Okno, Vector2i Position, char * TXT )
        : okno( Okno )
        , position( Position )
        , txt( TXT )
    { }
    void Draw( int A =- 1, int B =- 1 );
}
#endif
Z góry dzięki za pomoc!
P-104306
Monika90
» 2014-02-09 20:46:15
Brakuje średnika na końcu definicji klasy OCW.
P-104336
« 1 » 2
  Strona 1 z 2 Następna strona