SORU
12 Mayıs 2011, PERŞEMBE


C statik yöntemler

Küçük bir sorun C statik yöntemler ile çalışarak geçiriyorum

Örnek .h:

class IC_Utility {
public:
    IC_Utility();
    ~IC_Utility();

    std::string CP_PStringToString( const unsigned char *outString );
    void CP_StringToPString( std::string& inString, unsigned char *outString, short inMaxLength );
    static void CP_StringToPString( std::string& inString, unsigned char *outString);
    void CP_StringToPString( FxString& inString, FxUChar *outString);

};

Örnek .cpp:

static void IC_Utility::CP_StringToPString(std::string& inString, unsigned char *outString)
{
    short       length = inString.length();

   if( outString != NULL )
    {
        if( length >= 1 )
            CPLAT::CP_Utility::CP_CopyMemory( inString.c_str(), &outString[ 1 ], length );

            outString[ 0 ] = length;
    }
}

Gibi bir çağrı yapmak istiyorum:

IC_Utility::CP_StringToPString(directoryNameString, directoryName );

Ama bir hata alıyorum:

error: cannot declare member function 'static void IC_Utility::CP_StringToPString(std::string&, unsigned char*)' to have static linkage

Bunu yapamam anlamıyorum. Kimse bana ne istediğimi elde etmek için neden anlamanıza yardımcı olabilir?

CEVAP
12 Mayıs 2011, PERŞEMBE


Yöntem tanımı static sözcüğünü kaldırın. Sadece sınıf tanımı içinde kalsın.

static yerleştirilen anahtar kelime .cpp dosyası belirli bir fonksiyon statik bir bağlantı, yani sahip olduğu anlamına gelir. aynı dosya içinde diğer işlevleri erişilebilir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • jesiel santos

    jesiel santo

    15 Ocak 2009
  • joshsnice

    joshsnice

    28 Kasım 2006
  • Matus Slovak

    Matus Slovak

    5 Temmuz 2007