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

  • BetterCoder

    BetterCoder

    17 Aralık 2012
  • gsmaestro

    gsmaestro

    17 AĞUSTOS 2006
  • infodirt

    infodirt

    11 Mart 2009