所以我得到了下面的代码,我一直在浏览这个网站上的问题,以及我在谷歌上发现的任何其他内容,但我无法理解它...... 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':无法将函数定义与现有声明匹配
任何想法,消化?
答案 0 :(得分:1)
您声明函数返回C*
:
C* char_la_binar(C c);
^^
但定义它以返回char*
:
inline char* Cod<C>::char_la_binar(C c)
^^^^^
从函数体看,声明看起来是正确的,定义应该更改为C*