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

  • Dopelives

    Dopelives

    30 Temmuz 2009
  • Mr_BrettHooge

    Mr_BrettHoog

    3 Ocak 2011
  • StalkerJS

    StalkerJS

    15 HAZİRAN 2010