2013-05-07 49 views
5

Tôi biết rằng quy ước đặt tên cho giao diện giống như IName. Nhưng nếu tôi đang tạo ra một lớp trừu tượng thì sao?Quy ước đặt tên cho một lớp trừu tượng?

Tôi có nên viết một chữ I trước tên lớp không?

+0

Nghe có vẻ hơi gây nhầm lẫn cho tôi. Bạn có ý nghĩa gì bởi trừu tượng và giao diện? Trong C++ một lớp trừu tượng nếu nó có ít nhất một hàm ảo thuần túy. Một lớp giao diện thường là một lớp - điển hình, nhưng không nhất thiết phải trừu tượng, mà chủ yếu là để ẩn các chi tiết triển khai trong các lớp dẫn xuất và được sử dụng trên các giao diện công cộng. – jmihalicza

+5

Tiền tố 'I' là một Microsoftism (cho COM và .NET), không phải là quy ước đặt tên C++. – dan04

+0

Trong java và C# bạn có thể xem trực tiếp nếu lớp là trừu tượng hoặc nếu nó là một giao diện. Tôi đã nhìn thấy nhiều lần tiền tố I vì vậy tôi đã điều chỉnh nó. Tôi chỉ muốn nói rõ với các nhà phát triển khác rằng lớp này là trừu tượng hoặc và giao diện. Tôi có thể sử dụng tiền tố I cho các lớp trừu tượng quá. –

Trả lời

9

Trái ngược với quy ước mã hóa Java Oracles, không có quy ước đặt tên "The" cho C++.

  • Nếu bạn đang làm việc trong một dự án cho một số công ty, bạn nên tuân theo quy ước đặt tên của họ. Nếu không có quy ước nào được ghi lại - hãy nhìn xung quanh cơ sở mã và cố gắng theo bầy đàn, tính nhất quán là chìa khóa.

  • Nếu bạn đang bắt đầu một cái gì đó trên của riêng bạn, nhiều người tìm thấy google's c++ coding conventions là một khởi đầu tốt.

+11

Hmm, tôi không biết * bất kỳ nhà phát triển C++ nào nghĩ rằng các quy ước của Google là những hướng dẫn chung chung. Chúng rất tuyệt vời cho Google, nhưng chúng phải hoạt động trong các ràng buộc không thể áp dụng rộng rãi. –

+2

Tôi viết rằng đó là một khởi đầu tốt, không phải là chén thánh. Có bất kỳ quy ước tốt nào _universally_ áp dụng không? Vui lòng liên kết với các nguyên tắc khác. – Zelix

+3

Đó chính là điểm: Tôi và nhiều người khác không nghĩ rằng nó * là * một khởi đầu tốt. Nó chứa rất nhiều lời khuyên xấu, không thể áp dụng và gây hiểu nhầm. –

3

Không có quy định nào như quy ước đặt tên chung. Vào thời điểm bạn biết theo quy ước đặt tên, bạn có thể tra cứu câu trả lời trong đó.

5

Nếu bạn đang cố gắng tuân thủ quy ước đặt tên cụ thể, vui lòng đặt tên cho nó. Như câu trả lời khác giải thích, không có "Quy tắc C++" toàn cầu về các quy ước đặt tên.

Nếu bạn đang sử dụng ký pháp tiếng Hungari, tôi tin rằng quy ước thực sự là tiền tố 'tôi' như bạn đã làm cho 'IName'.

Lưu ý:Mặc dù không có "giao diện" như vậy trong C++, bạn có thể định nghĩa các lớp chỉ với các phương thức ảo thuần túy và không có biến thành viên.

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