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

Đề tài: bộ nhớ trong lớp class

  1. #1
    Ngày gia nhập
    07 2009
    Bài viết
    42

    Mặc định bộ nhớ trong lớp class

    class Test
    {
    Public:
    staic Test *get()
    {
    static Test* eu=0;
    if (!eu)
    eu=new Test;
    return eu;
    }
    };
    void main()
    {
    for(int i=0;i<100;i++)
    Test *t=Test::get();
    }
    tốn bao nhiêu bộ nhớ. Anh Chị giúp em với

  2. #2
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Tốn 100 * sizeof(Test)
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

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

    Sao mình cũng thấy câu hỏi này quen quen luôn. Nằm trong bài test của Gameloft
    @meoconlongvang : Nếu như thuộc tính tĩnh (static att) của class thì các object dùng chung vùng nhớ của nhau. Còn về phương thức tĩnh ?? Mình muốn hỏi là phương thức tĩnh (Static) trong class thì nó dùng vùng nhớ gì , có gì khác so với phương thức bình thường . Bạn giúp mình đả thông cái nỗi u uất này với :( Thanks

  4. #4
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Khi tạo 1 instance của class thì bộ nhớ sẽ được cấp để chứa toàn bộ thuộc tính của class. Nhưng static thì chỉ được cấp 1 lần khi class được tạo ra và không cấp nữa khi tạo instance của class.

    Tuy nhiên, trường hợp này lại khác. Con trỏ chỉ là biến lưu địa chỉ, size của nó chỉ 4 bytes. Cho dù nó ở class, instance, static hay ở đâu cũng ko quan trọng, cái quan trọng là bạn cứ gọi hàm new bao nhiêu lần thì bấy nhiêu lần bộ nhớ sẽ phải mất đi 1 lượng do new cấp.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  5. #5
    Ngày gia nhập
    07 2011
    Bài viết
    160

    Trích dẫn Nguyên bản được gửi bởi meoconlongvang Xem bài viết
    Tốn 100 * sizeof(Test)
    Mèo ơi là mèo, cái này nó chỉ cấp phát 1 lần thôi. Là kỹ thuật single-instance cơ bản.
    Có lẽ do cái if (!eu) để ở dòng trên nên mèo không chú ý rồi

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

  1. Algorithm Chèn Class Trong Class C#?
    Gửi bởi satthuit trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 08-01-2012, 12:09 PM
  2. class bên trong 1 class và cấp phát bộ nhớ
    Gửi bởi hope2907 trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 0
    Bài viết cuối: 03-10-2011, 04:46 PM
  3. Phân biệt CLASS - OBJECT - INSTANCE, trong đoạn code này, cái nào là intstance, object, class ?
    Gửi bởi megaboyvn trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 8
    Bài viết cuối: 04-08-2011, 03:45 PM
  4. 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
  5. Cách lấy giá trị biến từ class này sang class khác trong lập trình C#
    Gửi bởi phongk20 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 13-03-2011, 05:19 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