2011-10-24 46 views

Trả lời

5

Lớp địa phương và lớp lồng nhau là những con thú khác nhau.

A Lớp lồng nhau là lớp được khai báo trong phạm vi của một lớp khác.

A Lớp địa phương được khai báo trong định nghĩa hàm.

Lớp bên trong là thuật ngữ C++ không chuẩn, Vì vậy, tôi không chắc chắn cách xác định cụm từ đó.


lớp lồng nhau:

IBM Tài liệu như một tài liệu đẹp here.
Để Tóm tắt:

  • Tên của một lớp lồng nhau là địa phương đến lớp kèm theo của nó. Trừ khi bạn sử dụng con trỏ, tham chiếu hoặc tên đối tượng rõ ràng, khai báo trong một lớp lồng nhau chỉ có thể sử dụng cấu trúc hiển thị, bao gồm tên loại, thành viên tĩnh và liệt kê từ lớp bao quanh và biến toàn cầu.
  • Chức năng thành viên của một lớp lồng nhau tuân thủ các quy tắc truy cập thông thường và không có đặc quyền truy cập đặc biệt cho các thành viên trong các lớp kèm theo của họ. Các hàm thành viên của lớp kèm theo không có quyền truy cập đặc biệt cho các thành viên của một lớp lồng nhau

Lớp học địa phương:
Câu trả lời này của tôi here tài liệu các điểm tinh tế kết hợp với các lớp học tại địa phương.

+1

Và không có lớp bên trong trong C++. Đó là một khái niệm Java. –

2

Trích dẫn dự thảo của C++ 11 (N3290):

9,7 tờ khai lớp lồng nhau [class.nest]

1 Một lớp học có thể được khai báo trong lớp khác. Một lớp được khai báo trong lớp khác được gọi là một lớp lồng nhau là .

9,8 tờ khai lớp Local [class.local]

1 Một lớp học có thể được khai báo trong định nghĩa hàm; một lớp như vậy được gọi là một lớp địa phương.

Không có khái niệm về lớp bên trong được chỉ định trong tiêu chuẩn C++.

0

Lớp bên trong chụp tham chiếu this của lớp kèm theo. Một hệ thống phân cấp của các cá thể lớp bên trong tạo thành một cấu trúc cây. Điều này là duy nhất cho Java.

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