cuốn sách gpt4 ai đã làm

c++ - 具体 "getter setter"专用对象

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 14:13:41 27 4
mua khóa gpt4 Nike

Tôi muốn tạo một đối tượng để lưu trữ dữ liệu, hạn chế quyền truy cập đọc/ghi.

Ví dụ:

OBJ obj1;
OBJ obj2;

// DataOBJ có 2 phương thức: read() và write()
Dữ liệuOBJ dữ liệuOBJ1 (obj1);

Với đoạn mã trên, tôi muốnobj1访问write()phương pháp, trong khi phương pháp khácOBJsự vật(obj2 Trong trường hợp này) nên访问read() 方法。

Có thể tạo một Dữ liệuOBJ Lớp để hạn chế các quyền đó?

"Bộ cài đặt getter" cổ điển không phù hợp với nhu cầu của tôi.

Cảm ơn.

câu trả lời hay nhất

Bạn có thể kiểm soát quyền truy cập để ghi/đọc thông qua tham chiếu chung mẫu tới obj1/obj2, như trong ví dụ này:

lớp OBJ {
};

OBJ obj1;
OBJ obj2;

// TRUY CẬP HẠN CHẾ
lớp DataOBJBase {
protected:
làm mất hiệu lực ghi() {}
làm mất hiệu lực đọc() {}
};

mẫu
lớp DataOBJ;

// CHO PHÉP VIẾT NẾU CHO obj1
mẫu <>
lớp DataOBJ : DataOBJBase công khai {
public:
sử dụng DataOBJBase::write;
};

// CHO PHÉP ĐỌC NẾU CHO obj2
mẫu <>
lớp DataOBJ : DataOBJBase công khai {
public:
sử dụng DataOBJBase::read;
};


int chính() {
Dữ liệuOBJ dobj1;
dobj1.write(); // không thể đọc được
Dữ liệuOBJ dobj2;
dobj2.read(); // không thể viết
}

Về c++ - các đối tượng đặc biệt "getter setter" cụ thể, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/12893942/

27 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress