April 7th, 2010, 04:02 PM
#1
Simple Template Class problems
Below is a very simple Template class. I tested it without the use of templates, and it works fine. I am trying to convert it to a template class.
#include <iostream>
#include <vector>
#include <string>
#include <cmath>
using namespace std;
template <class T>
class Stack
{
private:
int position;
int input;
public:
Stack();
void push(int, int, vector<T> &);
void display(int, vector<T>);
};
template <class T>
Stack<T>::Stack()
{
//nothing
}
template <class T>
void Stack<T>: ush(int position, int input, vector<T> &mainStack)
{
mainStack[position] = input;
return;
}
template <class T>
void Stack<T>::display(int position, vector<T> mainStack)
{
cout <<mainStack[position]<<endl;
}
template <class T>
int main()
{
vector<int> values (25);// declares a vector of 25 integers
values[23] = 8888;
Stack a;
a.push(22, 9999, values);
a.display(22, values);
a.display(23, values);
return 0;
}
I get 2 errors: Can somebody point me in the right direction?
1>Linking...
1>MSVCRTD.lib(crtexe.obj) : error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup
1>C:\Users\Cesar\Documents\Visual Studio 2008\Projects\BurrisStuff\DataStructures\Debug\DataStructures.exe : fatal error LNK1120: 1 unresolved externals
1>Build log was saved at "file://c:\Users\Cesar\Documents\Visual Studio 2008\Projects\BurrisStuff\DataStructures\DataStructures\Debug\BuildLog.htm"
1>DataStructures - 2 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
April 7th, 2010, 04:07 PM
#2
Re: Simple Template Class problems
Obviously, main() can't be a template function.
April 7th, 2010, 06:34 PM
#3
Re: Simple Template Class problems
Originally Posted by
Lindley
Obviously, main() can't be a template function.
XD wow, I'm an idiot. It works just fine now. Thanks!
EDIT: also, this is what I ended up with.
#include <iostream>
#include <vector>
#include <string>
#include <cmath>
using namespace std;
template <class T>
class Stack
{
private:
int position;
T input;
vector<T> mainStack;
int M;
public:
Stack(int);
void push(int, T);
void display(int);
};
template <class T>
Stack<T>::Stack(int M)
{
mainStack.resize(M);
}
template <class T>
void Stack<T>: ush(int position, T input)
{
mainStack[position] = input;
return;
}
template <class T>
void Stack<T>::display(int position)
{
cout <<mainStack[position]<<endl;
}
int main()
{
Stack<int> a(25);
Stack<char> b(25);
Stack<string> c(25);
a.push(22, 9999);
a.display(22);
b.push(22, 'a');
b.display(22);
c.push(22, "Adam sucks");
c.display(22);
return 0;
}
Last edited by EmperorCesar; April 7th, 2010 at 06:48 PM .
Posting Permissions
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
Forum Rules
Click Here to Expand Forum to Full Width
Bookmarks