Thanks for taking the time to read my post in advance.
I am using templates with classes and keep getting LINK error's from visual studio.net. The code is below.
Template.h
Template.cppCode:/* Vector.h * CS-260 * * This file declares a class called Swap which * swaps the to variables passed by it. */ #include <iostream> #include <cstring> using namespace std; //Base template that will swap the data of two variable passed to it template <class T> T swap(const T &a, const T &b) { T temp; &temp = *&a; *&a = *&b; *&b = &temp; } //Specialized template that swaps variables of type char* template <class T> void swap(char*& first, char*& second) { char *temp; strcpy(temp, first); strcpy(first, second); strcpy(second, temp); } //Class Tripple template <class T1, class T2, class T3> class Triple { private: T1 first; T2 second; T3 third; public: //Constructors Triple(); Triple(const T1 &a, const T2 &b, const T3 &c); //Destructor virtual ~Triple(); //Accessors void setT1(Triple &lhs, T1 &rhs); void setT2(Triple &lhs, T2 &rhs); void setT3(Triple &lhs, T3 &rhs); //Operators friend ostream& operator<<(ostream& os, const Triple &rhs) { os << rhs.first << "\n" << rhs.second << "\n" << rhs.third << "\n"; return os; } };
Main.cppCode:#include "Vector.h" //Default Constructor template <class T1, class T2, class T3> Triple<T1, T2, T3>::Triple() { first = NULL; second = NULL; third = NULL; } //Initial value contructor template <class T1, class T2, class T3> Triple<T1, T2, T3>::Triple(const T1 &a, const T2 &b, const T3 &c) { first = a; second = b; third = c; } //Set member functions template <class T1, class T2, class T3> void Triple<T1, T2, T3>::setT1(Triple &lhs, T1 &rhs) { lhs.first = T1; } template <class T1, class T2, class T3> void Triple<T1, T2, T3>::setT2(Triple &lhs, T2 &rhs) { lhs.second = T2; } template <class T1, class T2, class T3> void Triple<T1, T2, T3>::setT3(Triple &lhs, T3 &rhs) { lhs.third = T3; }
Thanks again in advance.Code:#include "Vector.h" int main() { //Test base class int age = 22; int income = 50000; //Print original values cout << "Age is " << age << "\n" << "Income is " << income << "\n\n"; //Swap data of two variables passed swap(age, income); //Print new values cout << "Age is " << age << "\n" << "Income is " << income << "\n\n"; // Test specialized class char *firstName = "Jonathan"; char *lastName = "Antoine"; //Print original values cout << "My first name is " << firstName << "\n" << "My last name is " << lastName << "\n\n"; //Swap data of two variables passed swap(firstName, lastName); //Print new values cout << "My first name is " << firstName << "\n" << "My last name is " << lastName << "\n\n"; //Test Triple Class Default constructor Triple<char*, int, char*> Address1; char *recipientName = "Jonathan Antoine"; int houseNumber = 53070; char *streetName = "NW Manor Dr."; Address1.setT1(Address1, recipientName); Address1.setT2(Address1, houseNumber); Address1.setT3(Address1, streetName); Triple<char*, char*, int> Address2; char *city = "Scappoose"; char *state = "OR"; int zip = 97056; Address2.setT1(Address2, city); Address2.setT2(Address2, state); Address2.setT3(Address2, zip); cout << Address1 << "\n" << Address2 << "\n"; }



LinkBack URL
About LinkBacks


