2009-05-11 56 views
7

Tôi hiện đang học C++ và muốn bắt đầu đọc các mã nguồn khác để nhận mẹo. Tôi đã tự hỏi liệu có ai có ví dụ về viết C++ hay không và có thể xem xét (và không nhận thói quen xấu)Ví dụ viết bằng C++

+0

Rất giống: http://stackoverflow.com/questions/841855/some-useful-site-with-examples-c-and-java – lothar

Trả lời

7

Như bạn đã biết, có nhiều nguồn Internet cho các ví dụ về mã C++. StackOverflow, CodeProject, vv tất cả đều có các ví dụ về nguồn. Nhưng tất nhiên, tất cả đều trên bản đồ về chất lượng và giá trị giáo dục.

Tôi nghĩ, trong lĩnh vực này, sách vẫn còn ảm đạm trên Internet. Không có thay thế cho đi đến hiệu sách, ngón tay cái thông qua một vài tomes, và chọn một trong đó bạn tìm thấy có thể đọc được. Họ đã được đọc bằng chứng (không giống như các bài nộp trên Internet), vì vậy các mẫu có nhiều khả năng hoạt động và có chất lượng cao.

Mặc dù sách thường có đoạn mã nhỏ hoặc một vài chức năng, chúng thường đi kèm với CD hoặc URL chỉ cho bạn các ví dụ đầy đủ hơn.

O'Reilly, Suy nghĩ trong C++, Petzold và Wrox (và nhiều hơn nữa) tất cả đều có sách hay về C++.

4

Thư viện Boost? Nó thường được coi là một số mã C++ chất lượng cao nhất được viết. (Rất nhiều người cũng không thể đọc được nhiều hơn trừ khi bạn là một chuyên gia C++),

Nói chung, tôi khuyên bạn không nên thận trọng với phương pháp này. Trong C++, mã nguồn có thể sẽ không có nhiều thông tin như trong nhiều ngôn ngữ khác.

Nếu bạn thấy một số mã Python, bạn có thể giả định rằng nó chính xác, miễn là nó chạy. Nếu nó được viết bởi một người có vẻ như biết những gì họ đang làm, bạn thậm chí có thể giả định rằng nó được viết tốt.

Trong C++, có rất nhiều cạm bẫy khó chịu và các ngoại lệ tinh tế đối với mọi quy tắc mà bạn thực sự cần biết bạn đang làm gì. Việc biên dịch hoặc những gì có vẻ hiệu quả, hoặc những gì bạn thấy trong mã nguồn của người khác là nguy hiểm, và khá nhiều đảm bảo rằng bạn sớm hay muộn sẽ kết thúc với một chương trình dựa vào hành vi không xác định và sẽ sụp đổ khi bạn ít mong đợi nhất.

Nếu tôi là bạn, tôi sẽ cố gắng gắn bó với sách. Có một số văn bản được viết rất tốt, ngoài việc cho phép bạn xem một số mã nguồn, còn dạy cho bạn các ngôn ngữ "đúng". Và miễn là bạn gắn bó với các tác giả có uy tín, bạn chắc chắn rằng họ sẽ không dạy cho bạn bất kỳ thói quen xấu nào hoặc lao vào mã không thể di chuyển được.

+6

Tăng cấp độ khá cao cấp C++ Kung Fu. Nó khai thác mọi thủ thuật lập trình mẫu cuối cùng, và với tư cách là lập trình viên C++ trong 20 năm, tôi vẫn thấy khó để hiểu việc thực hiện Boost (và đôi khi thậm chí là sử dụng chúng) mà không suy nghĩ kỹ về mọi dòng cuối cùng. Đó là điều cuối cùng tôi muốn giới thiệu cho một newbie. –

+0

Tôi đồng ý. Tôi đã đề cập đến nó bởi vì nếu bạn * muốn * học C++ bằng cách nhìn vào mã nguồn của người khác, bạn nên ít nhất xem xét một số mã chất lượng. Tốt hơn là nên xem xét một số mã nâng cao mà bạn sẽ không hiểu, hơn là crap không thể chạy được mà hầu hết các hướng dẫn C++ trực tuyến "dạy". Và như tôi đã nói, nhìn vào mã nguồn có lẽ không phải là một cách hay để học ngôn ngữ trong mọi trường hợp. – jalf

2

Theo ý kiến ​​của tôi, nếu bạn đọc một cuốn sách C++ tốt (như "Ngôn ngữ lập trình C++", "Thêm hiệu quả C++" hoặc "Xuất sắc C++"). Bạn sẽ không chỉ học các phương pháp hay mà còn phải hiểu về cách viết mã.

Tất nhiên, các mẫu trong các Sách này chủ yếu là nhân tạo. Nếu bạn đọc 'các ứng dụng thế giới thực', bạn sẽ luôn gặp phải các đoạn mã khá xấu, nhưng đôi khi không chỉ có một giải pháp sạch đẹp cho nó (hoặc một giải pháp không sạch sẽ hiệu quả hơn về mặt tốc độ). Vì vậy, tôi không biết liệu tốt nhất là bắt đầu với các ứng dụng thực tế vì chúng cũng có thể rất áp đảo do số lượng mã hóa và phức tạp, trong khi mã mẫu trong Sách nhỏ gọn và rõ ràng được đặt ra.

Tôi nghĩ rằng đối với người mới bắt đầu, bạn nên đọc những tài liệu tham khảo như sách tôi đã liệt kê. Nếu bạn phải linh hoạt tại một số thời điểm trong tương lai và phải sản xuất mã xấu xí, ít nhất bạn sẽ biết rằng đó là mã xấu xí và không nhầm lẫn nó với "đó là cách nó phải";)

0

Nếu bạn muốn một dự án hoàn chỉnh để duyệt qua, tôi sẽ giới thiệu Ogre3d. Nó là một công cụ đồ họa có cấu trúc tốt với tài liệu phong nha và mã nguồn chính nó là tốt đẹp, quá.

2

Đọc qua phần mềm nguồn mở có thể rất mang tính giáo dục nếu bạn đã có một chút kiến ​​thức về C++. Nếu bạn mới bắt đầu, tôi tưởng tượng các thư viện Boost sẽ xuất hiện ngay trên đầu bạn. Bạn có thể bắt đầu với dự án WebKit, một tài nguyên tuyệt vời. Google cũng phát hành rất nhiều mã nguồn của họ, điều này cũng sẽ rất RẤT sạch: Protocol Buffers là một ví dụ tuyệt vời. Và trong khi bạn đang ở đó, bạn cũng có thể đọc C++ Style Guide của họ là tốt.

Cá nhân, tôi bắt đầu học C++ bằng cách chọn một vài cuốn sách và viết một số ứng dụng thử thách nhỏ. Hãy nhớ rằng việc học một ngôn ngữ rộng lớn như C++ mất một thời gian dài, như 10 years long.

Nhiều năm trước, tôi được cho biết rằng nếu tôi muốn có một sự nghiệp với tư cách là nhà phát triển C++, tôi chắc chắn nên đọc Hiệu quả C++ bởi Scott Meyers. Điều đó sẽ ngăn cản bạn rơi vào nhiều cạm bẫy của ngôn ngữ. Nếu bạn thấy bạn cần một cái gì đó đơn giản hơn, hãy bắt đầu với Ngôn ngữ lập trình C bởi Kernighan & Ritchie. Hãy kiên nhẫn và chúc may mắn!

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