Em có bài code như dưới:
#include<iostream>
class Vector {
private:
int N;
int* P;
public:
Vector(){
P = new int[N];
}
Vector(int n) {
N = n;
P = new int[n];
}
friend std::istream& operator>>(std::istream& nhap, Vector& v) {
std::cout << "\n Nhap so phan tu: ";
nhap >> v.N;
v.P = new int[v.N];
for (int i = 0; i < v.N; i++) {
std::cout << " Vec[" << i + 1 << "]= ";
nhap >> *(v.P + i);
}
return nhap;
}
friend std::ostream& operator<<(std::ostream& xuat, const Vector v) {
xuat << "\n So luong phan tu: " << v.N;
for (int i = 0; i < v.N; i++) {
xuat << "\n " << *(v.P + i);
}
return xuat;
}
Vector operator=(Vector v) {
N = v.N;
for (int i = 0; i < N; i++) {
*(P + i) == *(v.P + i);
}
return *this;
}
Vector operator+(Vector v) {
int temp;
if (N > v.N)
temp = N;
else temp = v.N;
for (int i = 0; i < temp; i++) {
if (i > v.N)
*(P + i) = *(P + i);
*(P + i) += *(v.P + i);
}
}
~Vector() {
delete[] P;
}
};
int main() {
Vector vt1, vt2;
std::cin >> vt1 >> vt2;
std::cout << vt1 << vt2;
system("pause");
return 0;
}
Khi xóa lệnh delete[] p
thì nó chạy bình thường nhưng thêm lệnh đó vào thì nó chạy xong báo lỗi. Ai biết sửa lỗi này chỉ giúp em.