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ÅŸ:

Nasıl senkronize statik yöntemler Java...
Kullanımı "bu" C statik yönt...
Hız eşdeğer statik ve statik olmayan y...
Neden Mockito statik yöntemler alay de...
Alay Statik yöntemler kullanarak Rhino...