2009-08-08 26 views

Trả lời

61

C++ đã được giới thiệu như là một siêu sao của C. Structs được chuyển từ C, trong đó ngữ nghĩa của các thành viên của họ là của công chúng. Có rất nhiều mã C tồn tại, bao gồm cả các thư viện được mong muốn làm việc với C++, sử dụng các cấu trúc. Các lớp học đã được giới thiệu trong C++, và để phù hợp với triết lý đóng gói OO, các thành viên của họ là riêng tư theo mặc định.

+0

Vâng, công bằng thì không cần thiết phải đóng gói để trở thành thành viên riêng tư. Với nội dung C++, các phương thức truy cập có thể rất rẻ, nhưng trong nhiều ngôn ngữ OOP được cung cấp cho cuộc gọi hàm, mọi người có xu hướng sử dụng truy cập công cộng vì nó rẻ hơn. Để kiểm soát tốt hơn, người ta có thể sử dụng các thuộc tính khai báo nếu lang của chúng hỗ trợ nó. Tuy nhiên, trong mã gốc, việc theo dõi các thay đổi biến là khó hơn các ngôn ngữ được quản lý, do đó, việc đặt các thuộc tính thông qua một điểm duy nhất trong mã là rất hợp lý. – progician

1

Có thể cho khả năng tương thích ngược với cấu trúc C. Bằng cách này, cấu trúc được khai báo trong mã C sẽ tiếp tục hoạt động theo cách tương tự khi được sử dụng trong mã C++.

7

Vì lớp là cách thông thường để thực hiện định hướng đối tượng, có nghĩa là các biến thành viên phải là riêng tư và có người truy cập công khai - điều này là tốt cho việc tạo low coupling. Mặt khác, Structs phải tương thích với các cấu trúc C, luôn luôn được công khai (không có khái niệm công khai và riêng tư trong C), và không sử dụng các trình truy cập/bộ biến đổi.

Các vấn đề liên quan