Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)

Paste

Pasted as C++ by Luan ( 6 years ago )
#include <iostream>

using namespace std;

template<typename MyTemplate>
class Line
{
public:
    int getNum() const;
    Line(MyTemplate value); // overloaded constructor
    Line(const Line& obj); // copy constructor
    ~Line(); // destructor
    Line& operator=(const Line&);

private:
    MyTemplate* ptr;
};


// Member functions definitions /////////////////////////////////////
template<typename MyTemplate>
Line<MyTemplate>::Line(MyTemplate num) // Overloaded constructor
{
    cout << "Overloaded constructor." << endl;
    ptr = new MyTemplate;
    *ptr = num;
}

template<typename MyTemplate>
Line<MyTemplate>::Line(const Line& obj) // Copy constructor
{
    cout << "Copy constructor." << endl;
    ptr = new MyTemplate;
    *ptr = *obj.ptr;
}

template<typename MyTemplate>
Line<MyTemplate>::~Line() // Destructor
{
    cout << "Freeing memory!" << endl;
    delete ptr;
}

template<typename MyTemplate>
Line<MyTemplate>& Line<MyTemplate>::operator=
(const Line<MyTemplate>& right) // = operator
{
    if (&right != this) {
        delete ptr;
        ptr = new int;
        *ptr = *(right.ptr);
    }
    return *this;
}

template<typename MyTemplate>
int Line<MyTemplate>::getNum() const // getNum method
{
    return *ptr;
}

template<typename MyTemplate>
void displayNum(Line<MyTemplate> obj) // displayNum function
{
    cout << "value of num : " << obj.getNum() << endl;
}

/////////////////////////////////////////////////////////////////////
// Main function for the program
int main() {
    Line<int> line1(10);
    Line<int> line2 = line1;
    Line<int> line3(30);
    line3 = line2;
    displayNum(line1);
    return 0;
}

 

Revise this Paste

Parent: 112317
Your Name: Code Language: