Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdlib>
- using namespace std;
- template <class T, int s = 3>
- class Vector{
- T *arr;
- int size;
- public:
- Vector();
- Vector(int);
- Vector(const Vector<T, s>&);
- ~Vector();
- Vector<T, s> operator *(T);
- // Produces ERROR
- //friend Vector<T, s> operator *(T, const Vector<T ,s>&);
- Vector<T, s>& operator =(const Vector<T,s>&);
- void display();
- void input();
- };
- template <class T, int s>
- Vector<T, s>::Vector(){
- size = s;
- arr = new T[size];
- }
- template <class T, int s>
- Vector<T, s>& Vector<T, s>::operator =(const Vector<T,s> &obj){
- for(int i = 0; i < size; i++){
- arr[i] = obj.arr[i];
- }
- return *this;
- }
- template <class T, int s>
- Vector<T, s>::Vector(int size){
- arr = new T[Vector<T>::size = size];
- }
- template <class T, int s>
- Vector<T, s>::Vector(const Vector<T, s> &obj){
- arr = new T[size = obj.size];
- for(int i = 0; i < size; i++){
- arr[i] = obj.arr[i];
- }
- }
- template <class T, int s>
- Vector<T, s>::~Vector(){
- delete[] arr;
- }
- template <class T, int s>
- void Vector<T, s>::display(){
- for(int i = 0; i < size; i++){
- cout << arr[i] << " ";
- }
- cout << endl;
- }
- template <class T, int s>
- void Vector<T, s>::input(){
- for(int i = 0; i < size; i++){
- cout << "arr[" << i << "] = ";
- cin >> arr[i];
- }
- }
- template <class T, int s>
- Vector<T, s> Vector<T, s>::operator *(T multiplier){
- Vector<T> temp(size);
- for(int i = 0; i < size; i++){
- temp.arr[i] = multiplier * arr[i];
- }
- return temp;
- }
- // Produces ERROR
- /*
- template <class T, int s>
- Vector<T, s> Vector<T, s>::operator *(T multiplier, const Vector<T, s> &obj){
- Vector<T> temp(obj.size);
- for(int i = 0; i < size; i++){
- temp.arr[i] = multiplier * obj.arr[i];
- }
- return temp;
- }
- */
- int main() {
- int size;
- cout << "Enter the length of the vector: ";
- cin >> size;
- Vector<int> obj(size);
- cout << "Input values" << endl;
- obj.input();
- int multiplier;
- cout << "Enter the multiplier: ";
- cin >> multiplier;
- cout << "Before multiplying" << endl;
- obj.display();
- obj = obj * multiplier;
- cout << "After multiplying" << endl;
- obj.display();
- return 0;
- }
Add Comment
Please, Sign In to add comment