C++ cho phép private thành viên được thay đổi bằng cách sử dụng phương pháp này tại sao?


0 Phiếu
Đã hỏi 24/4/2016 bởi SardiComp (880 điểm)
Sau khi nhìn thấy câu hỏi này một vài phút trước, tôi tự hỏi tại sao các nhà thiết kế ngôn ngữ cho phép nó vì nó cho phép các thay đổi gián tiếp của dữ liệu private . Như là một ví dụ
 class TestClass {
   private:
    int cc;
   public:
     TestClass(int i) : cc(i) {};
 };
 TestClass cc(5);
 int* pp = (int*)&cc;
 *pp = 70;             // private member has been modified
tôi thử nghiệm trên code và thực sự private data đã bị thay đổi. Là có bất kỳ lời giải thích tại sao điều này cho phép xảy ra hay đây chỉ là một giám sát trong ngôn ngữ? Có vẻ như để trực tiếp làm suy yếu sử dụng private data thành viên.

Xin vui lòng đăng nhập hoặc đăng ký để trả lời câu hỏi này.


ToughDev Q&A là gì?

Trang web hỏi đáp cho các bạn đam mê lập trình, phát triển phần mềm và các vấn đề kỹ thuật khác. Với sự giúp đỡ của bạn, chúng tôi hy vọng sẽ xây dựng thành công một thư viện đầy đủ các câu hỏi và trả lời về tất cả các vấn đề có liên quan đến lập trình!







...