01/10/2018, 15:25

Làm sao để lấy giá trị của đối tượng trong class này sử dụng cho class khác (mà không dùng hàm bạn, kế thừa, dẫn xuất)

Là thế này: mình có bài tập nhập xuất phiếu nhập nông trại, trong đó:

class tồn kho có đối tượng Phát sinh tăng được lấy dẫn từ phiếu nhâp
VD: nhập rau cải có số lượng 10 thì phát sinh tăng cũng bằng 10
mà đối tượng sl đó mình để trong class ChitietPhieunhap
Vậy mình phải làm sao đây ??help me

明玉 viết 17:41 ngày 01/10/2018

Thế thì chắc chỉ còn có cách là Composition over Inheritance – ‘Cấu thành’ thay vì ‘Kế thừa’

en.wikipedia.org

Composition over inheritance

Composition over inheritance (or composite reuse principle) in object-oriented programming (OOP) is the principle that classes should achieve polymorphic behavior and code reuse by their composition (by containing instances of other classes that implement the desired functionality) rather than inheritance from a base or parent class. This is an often-stated principle of OOP, such as in the influential book Design Patterns. An implementation of composition over inheritance typically begins with t...


Đơn giản nhất là trong class này có property là reference tới instance của class nọ.

Cẩm Hoài Nguyễn viết 17:34 ngày 01/10/2018

Cảm ơn bạn nhưng mà không dùng kế thừa bạn ơi

明玉 viết 17:40 ngày 01/10/2018

Không, Composite không phải là kế thừa.

class OtherClass 
{
public:
   int farAwayData = 0;
};
class MainClass
{
public:
   OtherClass *a; // <= không cần kế thừa
   MainClass() 
   {
      this->a = new OtherClass;
      std::cout << this->a->farAwayData << std::endl;
   }
};
Cẩm Hoài Nguyễn viết 17:36 ngày 01/10/2018

Ohhh. Mình cảm ơn bạn nhiều nha

Bài liên quan
0