Giúp lỗi toán tử cộng OOP

#include <iostream>


using namespace std;

class vector{
	int n;
	float *m;
	public:
		vector(int N=0){
			n=N;
			m=new float[n];
			for(int i=0;i<n;i++){
				m[i]=0;
			}
		}
		~vector(){
			delete []m;
		}
		void Nhap(){
			for(int i=0;i<n;i++){
				cin >> m[i];
			}
		}
		void Xuat(){
			for(int i=0;i<n;i++){
				cout << m[i] << " ";
			}
			cout << endl;
		}
		int getn(){
			return n;
		}
		vector operator+(vector ojb1){
			vector d(this->n);
			for(int i=0;i<d.n;i++){
				d.m[i]=this->m[i]+ojb1.m[i];
			}
			return d;
		}
};

int main()
{
	vector a(3), b(3), c(3);
	a.Nhap();
	b.Nhap();
	c=a+b;
	c.Xuat();
   	
    return 0;
}

Toán tử cộng khi mà trả về đối tượng, ra khỏi hàm nó xóa luôn đối tượng đó đi, và kết quả c=a+b là sai, ai giúp mình với ạ

Bạn cần override copy constructor và assignment operator.
Keyword mình để tiếng Anh bạn tự google rồi sửa lại code nhé

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?