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

  • Day9TV

    Day9TV

    22 NİSAN 2010
  • Muse

    Muse

    28 EYLÜL 2006
  • TV and Lust

    TV and Lust

    26 HAZİRAN 2006