gpt4 book ai didi

c++ - 未定义对“函数”的引用

转载 作者:搜寻专家 更新时间:2023-10-31 02:11:08 25 4
gpt4 key购买 nike

#include <iostream>
using namespace std;

void doStuff();

int main() {
doStuff();
return 0;
}

template<typename T>
void doStuff() {
T k = 6;
cout << k << endl;
}

你好。我被这个错误困住了。每次我都会收到类似“未定义的 doStuff 引用”这样的错误。这个问题有解决办法吗?

最佳答案

doStuff()的声明是非模板函数,定义是函数模板,不匹配。

我想你想要的是函数模板,那么

template<typename T>
void doStuff() {
T k = 6;
cout << k << endl;
}
int main() {
doStuff<int>();
return 0;
}

您也可以将声明放在main() 之前,将定义放在main() 之后。例如

template<typename T>
void doStuff();
int main() {
doStuff<int>();
return 0;
}
template<typename T>
void doStuff() {
T k = 6;
cout << k << endl;
}

注意调用doStuff时需要指定模板参数,因为它不能自动推导。

关于c++ - 未定义对“函数”的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44042125/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com