2011-01-13 58 views
30

Bất kỳ trang web hay giải thích nào về số ref class là gì và khi nào khai báo một lớp là "lớp ref"?Lớp học C++ được quản lý

Lời giải thích trên MSDN là không đủ đối với tôi,

base_type (không bắt buộc)

Một loại cơ sở. Một lớp ref hoặc cấu trúc ref có thể kế thừa từ 0 hoặc nhiều giao diện được quản lý và không hoặc một kiểu ref. Một lớp giá trị hoặc cấu trúc giá trị chỉ có thể kế thừa từ 0 hoặc nhiều giao diện được quản lý hơn.

ref

Từ khóa ref nói với trình biên dịch rằng lớp hay cấu trúc sẽ được cấp phát trên heap và một tham chiếu đến nó sẽ được chuyển đến các chức năng hoặc được lưu trữ trong các thành viên lớp. Từ khóa value cho trình biên dịch biết rằng tất cả dữ liệu trong lớp hoặc cấu trúc được chuyển đến các hàm hoặc được lưu trữ trong các thành viên.

Trả lời

47

Về cơ bản, ref class là lớp CLR. Nó tương đương với class trong C#.

Điều này tạo loại tham chiếu do CLR quản lý. Nếu bạn muốn tạo lớp có thể sử dụng được từ C#, bạn thường tạo một số ref class. (ref struct, bằng cách này, thực hiện chính xác điều tương tự, nhưng với lớp chuẩn C++ so với quy tắc truy cập mặc định struct.)

Ngoài ra, chỉ để tham khảo - để tạo loại giá trị (struct in C#), bạn 'd sử dụng value class hoặc value struct.

Giải thích tốt về nhiều từ khóa mới này là Herb Sutter's post on C++/CLI Keywords. Đây là một tài liệu tham khảo hữu ích nếu bạn mới dùng C++/CLI, nhưng có nền C++ vững chắc.

+0

Độc đáo giải thích khái niệm cơ bản. Cảm ơn bạn! đó chính xác là những gì tôi đang tìm :) –

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