错误链接2019

时间:2016-01-22 19:47:59

标签: c++

  

错误1错误LNK2019:未解析的外部符号" void __cdecl show(struct stringy const&)" (?show @@ YAXABUstringy @@@ Z)在函数_main F:\ c ++代码\ exercise8.42 \ exercise8.42 \ Source.obj exercise8.42

中引用
#include<iostream>
#include<cstring>

struct stringy{
    char * str;
    int ct;
};

void set(stringy & r1, char * a);
void show(const stringy & r1);
;

int main()
{
    stringy beany;
    char testing[] = "Reality isn't, and show() go there";
    set(beany, testing);
    show(beany);

    return 0;
}

void set(stringy & r1, char *a)
{
    int i = 0;
    while (a[i] != '\0')
        i++;
    r1.str = new char;
    r1.ct = i;
    for (int b = 0; b < i; b++)
        r1.str[b] = a[b];
    r1.str[i + 1] = '\0';
}

void show(stringy & r1)
{
    std::cout << *r1.str;
}

我刚开始用c ++编写代码。

1 个答案:

答案 0 :(得分:1)

函数参数的

const是该函数签名的一部分。因此

void show(const stringy & r1);

不同
void show(stringy & r1);

在编译main ()时,编译器只知道void show(const stringy & r1);,但是在您实现之后链接器找不到它的实现

void show(stringy & r1);

而不是

void show(const stringy & r1);

解决方案只是在const执行stringy & r1之前添加show