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

Problematyczna klasa

Ostatnio zmodyfikowano 2012-03-03 22:29
Autor Wiadomość
pawajoro
Temat założony przez niniejszego użytkownika
Problematyczna klasa
» 2012-03-03 09:00:47
C/C++
class kuid
{
protected:
    string addon;
    string input;
    string author;
    string version;
    string html;
public:
    void setparam( int what, string something )
    {
        switch( what )
        {
        case 1:
            addon = something;
            break;
        case 2:
            input = something;
            break;
        case 3:
            author = something;
            break;
        case 4:
            version = something;
            break;
        case 5:
            html = something;
            break;
        default:
            return;
        };
    };
    string getparam( int what )
    {
        switch( what )
        {
        case 1:
            return addon;
            break;
        case 2:
            return input;
            break;
        case 3:
            return author;
            break;
        case 4:
            return version;
            break;
        case 5:
            return html;
            break;
        default:
            return "Nothing!";
            break;
        };
    };
};
void deductparam( bool a, bool b, bool c, bool d )
{
    if( a == true || d == true || c == false )
    {
        size_t d1;
        d1 = input.find( ":" );
        version.insert( 0, input,( d1 + 1 ), 1 );
    }
    if( a == true || d == true || c == true )
    {
        string tekst;
        tekst.insert( 0, html );
        int nos;
        nos = tekst.find( "<" );
        size_t d1;
        size_t d2;
        size_t d3;
        d1 = tekst.find( ":", nos + 1 );
        d2 = tekst.find( ":", d1 + 1 );
        d3 = tekst.find( ":", d2 + 1 );
        string s1;
        string s2;
        string s3;
        int iz1;
        int iz2;
        if( d3 == std::string::npos )
        {
            s3 = "0";
            size_t dk = tekst.find( ">", d2 + 1 );
            iz2 = dk - d2 - 1;
        }
        else
        {
            iz2 = d3 - d2 - 1;
            s3.insert( 0, tekst,( d3 + 1 ), 1 );
        }
        s2.insert( 0, tekst,( d2 + 1 ), iz2 );
        iz1 = d2 - d1 - 1;
        s1.insert( 0, tekst,( d1 + 1 ), iz1 );
        author.insert( 0, s1 );
        addon.insert( 0, s2 );
        version.insert( 0, s3 );
    };
};
};
Kompilator wywala mi:

Compiling: C:\CBScripts\Test class.cpp
C:\CBScripts\Test class.cpp: In function 'void deductparam(bool, bool, bool, bool)':
C:\CBScripts\Test class.cpp:110: error: 'input' was not declared in this scope
C:\CBScripts\Test class.cpp:111: error: 'version' was not declared in this scope
C:\CBScripts\Test class.cpp:116: error: 'html' was not declared in this scope
C:\CBScripts\Test class.cpp:144: error: 'author' was not declared in this scope
C:\CBScripts\Test class.cpp:145: error: 'addon' was not declared in this scope
C:\CBScripts\Test class.cpp:146: error: 'version' was not declared in this scope
C:\CBScripts\Test class.cpp: At global scope:
C:\CBScripts\Test class.cpp:149: error: expected declaration before '}' token
Process terminated with status 1 (0 minutes, 0 seconds)
Dlaczego kompilator nie widzi zmiennych z własnej klasy ?

Znalazłem! Dodatkowa klamra.
P-51792
pekfos
» 2012-03-03 10:47:56
C/C++
void setparam( int what, string something )
{
    switch( what )
    {
    case 1:
        addon = something;
        break;
    case 2:
        input = something;
        break;
    case 3:
        author = something;
        break;
    case 4:
        version = something;
        break;
    case 5:
        html = something;
        break;
    default:
        return;
    };
};
Gorzej się tego rozwiązać nie dało?
P-51801
malan
» 2012-03-03 22:29:57
Przecież funkcja deductparam jest poza klasą.
P-51892
« 1 »
  Strona 1 z 1