【发布时间】:2017-04-18 08:53:49
【问题描述】:
我在将向量作为参数传递给类函数时遇到了一些问题。类在另一个文件中。这是我的代码:
main.cpp:
#include <iostream>
#include <vector>
#include <string>
#include "class1.h"
using namespace std;
int main() {
vector<string> names;
names.push_back("Bob");
names.push_back("Gorge");
names.push_back("Bill");
names.push_back("Freddy");
names.push_back("Daniel");
names.push_back("Emily");
class1 obj;
obj.printVector(names);
system("pause");
}
class1.h:
#pragma once
class class1
{
public:
void printVector(std::vector<string>& names);
};
class1.cpp:
#include <string>
#include "class1.h"
using namespace std;
void class1::printVector(vector<string>& names) {
for (unsigned int i = 0; i < names.size(); i++)
{
cout << names[i] << endl;
}
}
我尝试对其他数据类型(int、char、floats...)做同样的事情,它奏效了。另外,当我将它们传递给 main.cpp 中的函数时,它可以工作。错误是:
- Severity Code Description Project File Line Suppression State
Error C3203 'allocator': unspecialized class template can't be used as a template argument for template parameter '_Alloc', expected a real type tesst c:\users\...\documents\programs and games\tesst\tesst\class1.h 6
- Severity Code Description Project File Line Suppression State
Error C3203 'allocator': unspecialized class template can't be used as a template argument for template parameter '_Alloc', expected a real type tesst c:\users\...\documents\programs and games\tesst\tesst\class1.h 6
- Severity Code Description Project File Line Suppression State
Error C2923 'std::vector': 'string' is not a valid template type argument for parameter '_Ty' tesst c:\users\...\documents\programs and games\tesst\tesst\class1.h 6
- Severity Code Description Project File Line Suppression State
Error C2923 'std::vector': 'string' is not a valid template type argument for parameter '_Ty' tesst c:\users\...\documents\programs and games\tesst\tesst\class1.h 6
- Severity Code Description Project File Line Suppression State
Error C2065 'string': undeclared identifier tesst c:\users\...\documents\programs and games\tesst\tesst\class1.h 6
- Severity Code Description Project File Line Suppression State
Error C2065 'string': undeclared identifier tesst c:\users\...\documents\programs and games\tesst\tesst\class1.h 6
- Severity Code Description Project File Line Suppression State
Error C2664 'void class1::printVector(std::vector &)': cannot convert argument 1 from 'std::vector<std::string,std::allocator<_Ty>>' to 'std::vector &' tesst c:\users\...\documents\programs and games\tesst\tesst\main.cpp 22
- Severity Code Description Project File Line Suppression State
Error C2511 'void class1::printVector(std::vector<std::string,std::allocator<_Ty>> &)': overloaded member function not found in 'class1' tesst c:\users\...\documents\programs and games\tesst\tesst\class1.cpp 9
请帮忙! 谢谢你
【问题讨论】:
标签: c++ string vector parameters parameter-passing