gpt4 book ai didi

c++ - 在头文件c++中重新定义函数

转载 作者:行者123 更新时间:2023-11-30 02:22:38 25 4
gpt4 key购买 nike

在编写我的头文件并尝试在 cpp.file 中使用它之后。尝试重新定义头文件中的函数时,编译器给我一个错误。以前我以类似的方式使用标题时,我没有遇到这个问题。也许我以错误的方式初始化了 Vector。不管怎样,这里是代码:

#include <string>
#include <vector>
#include "lajitellut.h"
using namespace std;

namespace otecpp_lajitellut{

/*this is where the error appears*/
vector<string> lajitellut(int lkm, char*mjt[]){
vector<string> stringVector;
for(int i =0; i<lkm; i++){
stringVector.push_back(mjt[i]);
}

for(int i =0; i<lkm; i++){
for(int a = 0; a<lkm;a++){
if(stringVector[i] < stringVector[a]){
stringVector[i].swap(stringVector[a]);
}
}
}

return stringVector;
}

}

这是头文件

#ifndef kissa
#define kissa
#include <string>
#include <vector>
namespace otecpp_lajitellut{

std::vector <std::string> lajitellut(int lkm, char* mjt[]) {
std::vector<std::string> stringVector;
return stringVector;
}

}
#endif // kissa

最佳答案

只在"lajitellut.h"头文件中放置函数声明:

#include <vector>
#include <string>
namespace otecpp_lajitellut {
std::vector<std::string> lajitellut(int, char*);
}

将函数定义放在源"*.cpp"文件中:

#include <iostream>
#include <vector>
#include <string>
#include "lajitellut.h"
namespace otecpp_lajitellut {
std::vector<std::string> lajitellut(int lkm, char* mjt[]) {
// your code in here
}
}
int main(){
auto a = otecpp_lajitellut::lajitellut(10, "asd");
}

请注意,定义也是声明。话虽这么说,你那里没有 vector 。你有一个 std::vector<std::string> 类型的函数.不要使用 using namespace std; .

关于c++ - 在头文件c++中重新定义函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47030121/

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