错误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 ++编写代码。
答案 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
。