Từ 1 tới 3 trên tổng số 3 kết quả

Đề tài: Thắc mắc về tính kế thừa một phương thức trong class.

  1. #1
    Ngày gia nhập
    08 2011
    Bài viết
    4

    Mặc định Thắc mắc về tính kế thừa một phương thức trong class.

    Đây là một đoạn code ví dụ:

    class A{
    public:
    int a;
    void get(int x) {a = x;}
    };

    class C : public A{
    public:
    void get(int,int);
    };

    void C::get(int x, int y){
    A::get(x);
    }

    int main()
    { A a; C c;
    c.get(1,1);
    cout << a.a;
    };

    trong main gọi get của C -> hàm get của A -> gán a = x -> xuất a.
    khi chạy chương trình đáng lẽ kết quả xuất ra là 1 theo mong muốn của mình.
    Nhưng có lẽ mình đã hiểu sai gì đó ở đây nên kết quả không phải là 1. Mọi người hướng dẫn giúp.

  2. #2
    Ngày gia nhập
    04 2011
    Bài viết
    13

    Về lý thuyết mà nói bạn gọi c.a thì khả năng cao là được 1 (Mình chưa xem từng câu lệnh cũng như các option pulic, private... và chưa thử nên không chắc chắn các tiểu tiết :P)

    Lý do là object a và object c không liên quan gì đến nhau (trừ khi bạn dùng static)! Bạn thay đổi trạng thái của object c tại sao trạng thái của object a lại thay đổi?
    Logic của inheritance là object c có dữ liệu+tính chất của class C do đó có cả dữ liệu+tính chất của class A (chứ không phải cụ thể một object a nào đó). Bạn có thể tưởng tượng rằng class C lẽ ra gồm cả phần bạn viết ở class A nhưng nhác không viết lại nên bạn dùng inherits.

  3. #3
    Ngày gia nhập
    08 2011
    Bài viết
    4

    ah, h thì mình đã hiểu. Thanks

Các đề tài tương tự

  1. sử dụng class bạn trong C++ như thế nào?
    Gửi bởi zalrol trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 7
    Bài viết cuối: 28-05-2012, 08:52 AM
  2. Lỗi: error C2440: 'initializing' : cannot convert from 'class xxx *' to 'class xxx *' sửa như thế nào?
    Gửi bởi Nupakachy trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 16-06-2011, 08:54 PM
  3. Cú pháp của class trong C# như thế nào?
    Gửi bởi seaboy trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 6
    Bài viết cuối: 18-05-2011, 09:53 AM
  4. cài đặt class Tam Giac kế thừa class Diem, như thế nào?
    Gửi bởi be_sau trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 19-10-2010, 03:52 PM
  5. Tại sao có struct rồi còn sinh ra class. Lợi thế của class là gì?
    Gửi bởi car0ot trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 24
    Bài viết cuối: 24-10-2008, 05:26 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn