c++ - C2244 - 无法将函数定义与现有声明相匹配

标签 c++ templates inline

所以我得到了下面的代码,我一直在浏览这个网站上的问题,以及我在谷歌上找到的任何其他东西,但我就是无法掌握它...... 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/

相关文章:

c++ - std::线程抛出 "resource dead lock would occur"

C++ 对模板结构声明歧义!

c++ - 无法根据隐式构造的参数推导模板参数

html - 具有宽度值的内联 img 标签

c++ - 为什么在 2 个不同的 cpp 文件中定义内联全局函数会导致神奇的结果?

c++ - C++ 中的内联函数与普通函数

c++ - Winsock 错误代码 10014

c++ - OpenCL 缓冲区为空

c++ - 在 C++ 中反转通用双向链表

c++ - 嵌套模板问题