I'm having some problems with passing vectors, as parameters, to a class function. Class is in another file. This is my code:
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;
}
}
I tried doing the same thing with other data types (int, char, floats...) and it worked. ALso when i just pass them to a function in main.cpp it works. The errors are:
- 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
Please help! Thank You