সি ++ এ স্থিতিশীল পদ্ধতি নিয়ে কাজ করতে আমার একটু সমস্যা হচ্ছে
উদাহরণ .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);
};
উদাহরণ .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;
}
}
আমি যেমন একটি কল করতে চেয়েছিলেন:
IC_Utility::CP_StringToPString(directoryNameString, directoryName );
তবে আমি একটি ত্রুটি পেয়েছি:
error: cannot declare member function 'static void IC_Utility::CP_StringToPString(std::string&, unsigned char*)' to have static linkage
আমি কেন এটি করতে পারি না তা বুঝতে পারি না। আমি কী চাই এবং কীভাবে কীভাবে অর্জন করতে পারি তা বুঝতে কেউ আমাকে বুঝতে সহায়তা করতে পারে?
/* static */
। আমি .h এবং .cpp ফাইলগুলিতে একই সংশোধক এবং ডিফল্ট আর্গুমেন্ট থাকা পছন্দ করি।
static
হেডার ফাইলে .h
করে তা ", বর্গ সংযুক্ত কোন বস্তুর না" অর্থ, অপসারণ static
মধ্যে .cpp
ফাইল, এটি একটি ভিন্ন অর্থ যা আপনি এখানে চাই না হয়েছে।
static
.cpp ফাইলে কীওয়ার্ডটি অপসারণ করা উচিত । সি ++ এর অনুমতি দেয় না।