01/10/2018, 00:05

Làm thế nào để truy cập(access) vào vào biến(var) của 1 class từ 1 class khác

Ví dụ: ta có

class SinhVien{
	string ID;
	string name;
	int diem;
	friend class QuanLy;	
public:
	void Nhap(SinhVien *arr, int n);
}

class QuanLy
{
	void NhapSoLuongSV (int &n); // (n thuộc class SinhVien)

	void InSV(SinhVien *arr, int n); // in các sv có điểm >9
}
Đỗ Trung Quân viết 02:10 ngày 01/10/2018

Lâu mình không làm tới C++. Câu trả lời có thể thiếu sót

Nếu các biến của bạn là public thì có thể trỏ trực tiếp từ instance của class đó
Bạn có thể sử dụng getter để lấy các giá trị các biến private

  public:
        SinhVien();
        ~SinhVien();

        void set_diem(int d);
        int get_diem() const;


        void SinhVien::set_diem(int d)
        {
             diem= d;
        }

        int player::get_diem()
        {
             return diem;
        }

Hoặc sử dụng friend method như trong bài viết này của mình -> Here

Anh Tuấn Vũ viết 02:12 ngày 01/10/2018

SinhVien();
~SinhVien();

A cho e hỏi ~SinhVien(); có ý nghĩa gì v ạ? Nó có khác gì so với hàm Sinhvien(); ko ạ? Sao phải khai báo cả 2 ạ? Em cảm ơn

viết 02:11 ngày 01/10/2018

nó là hàm hủy. Nếu trong hàm tạo có cấp phát động thì phải giải phóng nó ở hàm hủy. Ở đây class SinhVien ko có cấp phát động gì hết thì khỏi cần viết hàm hủy cũng được.

Mai Anh Dũng viết 02:22 ngày 01/10/2018

Rule of three là cứ phải viết cả 3 hàm chứ

  • Hàm hủy (destructor)
  • Hàm copy (copy constructor)
  • Hàm gán (copy assignment operator)
en.wikipedia.org

Rule of three (C++ programming)

The rule of three and rule of five are rules of thumb in C++ for the building of exception-safe code and for formalizing rules on resource management. It accomplishes this by prescribing how the default members of a class should be used to accomplish this task in a systematic manner. The rule of three (also known as the Law of The Big Three or The Big Three) is a rule of thumb in C++ (prior to C++11) that claims that if a class defines one (or more) of the following it should probably explicitl...

Quân viết 02:20 ngày 01/10/2018

cứ viết cho chắc, giờ chưa dùng nhưng sau sẽ dùng lại, chả nhẽ lại lôi mã cũ ra sửa

Mai Anh Dũng viết 02:11 ngày 01/10/2018

Thực ra đường nào cũng phải lôi ra sửa à. Có điều nó tạo cho mình thói quen viết đủ.

Lúc mới code C++ Đạt cũng lười viết mấy cái này. Nhưng mà code nhiều thì sẽ thấy là đằng nào cũng cần phải viết. IDE tốt nó tạo giúp mình cái skeleton này. Không nhớ là có không, nhưng nếu có thì tốt.

Sinner viết 02:14 ngày 01/10/2018

Mình đã tham khảo các góp ý và thấy rằng cách dùng tính kế thừa có vẻ hợp lý nhất.
“Derived class” sẽ có tất cả các hàm của “base class” -> “Derived class” dùng được các biến của “base class” gián tiếp thông qua các hàm được kế thừa

Bài liên quan
0