làm thế nào để làm điều đó?
hoàn toàn có thể, sử dụng từ khóa using
.
không nên bị cấm?
Không cần. Bạn luôn có thể trả lại thành viên lại khả năng truy cập của họ nhưng không nhiều hơn ban đầu là. Vì vậy, nếu lớp cơ sở ban đầu đã tuyên bố một cái gì đó là công khai và nó chỉ là ý tưởng/hạn chế của bạn để làm cho nó riêng tư, điều này không làm tổn thương lớp cơ sở nếu bạn bỏ hạn chế này và để nó ở chế độ công khai. sự bắt đầu. Trích dẫn từ "Ngôn ngữ lập trình C++" sẽ giúp ích nhất ở đây.
Một sử dụng kê khai không thể được sử dụng để truy cập vào thêm thông tin . Nó chỉ đơn giản là một mecha- nism cho làm cho truy cập thông tin thuận tiện hơn để sử dụng.
vì vậy nếu nó đã truy cập trong lớp cơ sở, và bạn có nguồn gốc lớp học của bạn với protected
hoặc private
từ khóa mà bạn có thể loại bỏ hạn chế này và gửi lại chúng trở lại mức ban đầu của họ tiếp cận bằng cách "vận chuyển" họ một phần thích hợp (public,protected,private
) trong định nghĩa lớp dẫn xuất của bạn.
class U{
public:
int a;
protected:
int b;
private:
int c;
};
class V : private U{
public:
using U::b;
using U::a;
};
int main(int argc, char** argv) {
V v;
printf("\nV: %d %d %d",v.a,v.a,v.b);
U u;
printf("\nU: %d %d %d",u.a,u.a,u.a);
return 0;
}
Không đúng sự thật. OP hỏi về các thành viên * private * data. –
OP hỏi về 'U :: c', là riêng tư trong' U'. – juanchopanza
@AndyProwl không tôi có nghĩa là một khóa học –