所以我得到了下面的代码,我一直在浏览这个网站上的问题,以及我在谷歌上找到的任何其他东西,但我就是无法掌握它...... S.O.S.
template <class C>
class Cod
{
private:
SirString *sir_string;
SirBinar *sir_binar;
C* char_la_binar(C c);
C* string_la_binar(C *s);
C* binar_la_char(C *cod_binar);
C* binar_la_string(C *cod_binar);
public:
Cod();
Cod(SirBinar *sb);
Cod(SirString *ss);
C* vezi_string();
C* vezi_binar();
void codificare();
void decodificare();
};
template <class C>
inline char* Cod<C>::char_la_binar(C c)
{
C *cod_binar = (C*) malloc (sizeof(C));
strcpy(cod_binar, "");
int aux = (int)c;
while(aux)
{
if(aux%2 == 0)
strcat(cod_binar, "0");
else
strcat(cod_binar, "1");
aux/=2;
}
cod_binar = strrev(cod_binar); //
return cod_binar;
}
错误 11 错误 C2244:“Proj::Cod::char_la_binar”:无法将函数定义与现有声明相匹配
有什么想法、建议吗?
最佳答案
声明函数返回C*
:
C* char_la_binar(C c);
^^
但将其定义为返回 char*
:
inline char* Cod<C>::char_la_binar(C c)
^^^^^
从函数体来看,声明是正确的,应该把定义改成C*
关于c++ - C2244 - 无法将函数定义与现有声明相匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25852416/