Ví dụ mình có lớp ma trận:
class Matran{ private: int h,c; int *a;
public:
// các hàm khởi tạo, hủy, in mat trận
Matran(int nh, int nc){
h=nh, c=nc;
a = 0;
}
...
}
Bây giờ mình muốn viết hàm cộng 2 ma trận:
Matran cong(Matran const &ma, Matran const &mb){ if (ma.h!=mb.h || ma.c!=mb.c){ cout<<"Hai ma tran khong cung khich thuoc"<<end; // Kết thúc hàm
return ???
}
// Thực hiện cộng 2 ma trận
Matran res(ma.h, ma.c);
...
return res;
}
Khi 2 ma trận không cùng kích thước thì báo lỗi và kết thúc tại đó, vấn đề ở đây là return cái gì, trong phần khai báo hàm thì yêu cầu trả về 1 Matran.
Cách xử lí của mình là trả về 1 Matran rỗng: return Matran(0,0);
Nhưng mình thấy cách này không hay cho lắm. Không biết còn cách xử lí nào khác không nên mình đăng lên xin ý kiến mọi người.
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?