2012-02-10 32 views
5

thể trùng lặp:
The Definitive C++ Book Guide and ListLàm thế nào để bắt đầu lập trình hướng đối tượng trong C++?

Về cơ bản tôi từ C, lĩnh vực Embedded C. Sau khi làm việc 5 năm trong lĩnh vực này, tôi muốn bắt đầu C++. Bây giờ, tôi đã bắt đầu học C++. Nhưng khái niệm Class không phải là nhấn vào đầu tôi. Hãy gợi ý cho tôi cách tôi nên bắt đầu khái niệm Lớp học hoặc một số trang web tốt và đơn giản, nơi tôi có thể bắt đầu C++ dễ dàng. Và vui lòng đề xuất cho tôi một số vấn đề C++ tốt (Trang web nơi tôi có thể tìm thấy một số bài tập C++).

Trả lời

1

C++ là có nguồn gốc từ c, cuốn sách này có thể giúp bạn hiểu C++: "Bên trong C++ mô hình đối tượng"

+0

cho người mới bắt đầu ?? – Nikko

+0

"Về cơ bản tôi đến từ trường C, Embedded C. Sau khi làm việc trong 5 năm trong lĩnh vực này, tôi muốn bắt đầu C++." – Proteas

2

Nếu bạn muốn tìm hiểu C++, Stroustrups "Ngôn ngữ C++" là một điểm khởi đầu rất tốt imo . Cá nhân tôi cũng đã học được rất nhiều từ Scott Meyers "Hiệu quả C++" và "Hiệu quả hơn C++"

Ngoài ra tôi nghĩ rằng, xem xét nền nhúng của bạn, bạn có thể không chỉ cần "học ngôn ngữ" mà còn làm việc theo sự hiểu biết của bạn Lập trình hướng đối tượng. Tôi nghĩ một trong những cuốn sách cơ bản trong lĩnh vực này là "Phân tích và thiết kế hướng đối tượng" của Grady Booch và "Gang of Four": Gamma/Helm/Johnson/Vlissides "Mẫu thiết kế" (mặc dù cả hai cuốn sách đều được viết bằng nền Java)

4

Hãy xem Definitive C++ Book Guide. Vì bạn có một nền tảng C nên tôi khuyên bạn nên "Tăng tốc C++" bởi Koenig và Moo, bởi vì nó cho thấy mã trong các thành ngữ C++ hiện đại ngay từ đầu. điều này có thể sẽ giúp bạn tập trung vào sự khác biệt giữa C và C++ và cho bạn thấy những phần nào trong thói quen C bạn sẽ phải bỏ học.

0

Khái niệm "Lớp" có thể dễ dàng được mô hình hóa thành C struct chứa thành viên dữ liệu và con trỏ tới cấu trúc có chứa con trỏ hàm (bảng v), trong đó tất cả hàm có thông số "ẩn" Class* this.

Điều đó nói rằng, nếu bạn đã quen thuộc với cấu trúc, con trỏ và con trỏ hàm, các lớp không có gì là "misterious".

Mọi thứ khác là "nghệ thuật sử dụng" và bản thân nó không liên quan đến khái niệm lớp học nhưng cách chúng có thể được sắp xếp để có mã có thể duy trì hiệu quả.

Tại thời điểm này bạn có thể

  • thử mình để mã hóa một chương trình C thiết kế theo cách tat (lưu ý phức tạp, chỉ cần để có được những đầu mối) hoặc
  • quên C chính nó, và cố gắng hiểu các khái niệm nên được sử dụng (thay vì sau đó cho những gì nó về mặt kỹ thuật).

Đối với điểm cuối cùng "C Accelerated ++" Koenig và Moo cuốn sách có thể là một khởi đầu tốt: nó không xem xét C, nhưng làm thế nào C++ và nó thư viện nên được sử dụng, và -Sau khi đi sâu hơn và sâu hơn chi tiết- cho thấy những khái niệm đó đến từ đâu.

+1

hầu hết các ứng dụng * thú vị * của một lớp không liên quan đến các chức năng ảo, nhưng liên quan đến kiểm soát truy cập (private/public), toán tử và constructor/destructors. Nói cách khác, không có gì giống như cấu trúc C – jalf

+0

@ Jalf: Tôi đồng ý, nhưng * bạn không thể bay trừ khi bạn rời khỏi mặt đất * OP hỏi một cái gì đó về một lớp IS, bình luận của bạn là về những gì nó là FOR Tôi đang nói về khái niệm "mặt đất" và Sau khi OP hiểu điều đó, bạn không thể bắt đầu nói về động từ "bay" và về "hệ thống điều khiển chuyến bay" Nói về "hệ thống điều khiển chuyến bay" với người nào đó Tôi biết tất cả điều này có thể được opinalble, nhưng dowvoting cho tái cân nhắc asons là thành kiến.- –

+0

Vì vậy, bạn sẽ không mô tả một chiếc máy bay về khả năng bay của nó? Tôi nghĩ rằng * mục đích * của một cái gì đó là khá cần thiết trong việc hiểu nó. Chúng ta có thể nói về một chiếc máy bay như "một thứ có thể bay và chở hành khách", hoặc woulc mô tả nó là "một điếu xì gà titan cỡ lớn với rất nhiều chỗ ngồi bên trong và hai miếng kim loại bằng phẳng". Nếu bạn muốn hiểu các lớp học, bạn cần phải suy nghĩ về những gì chúng được sử dụng cho. Một lớp cho phép bạn định nghĩa một kiểu dữ liệu mới, và nó cho phép bạn áp đặt hành vi trên kiểu dữ liệu đó. ctors/dtorsare cần thiết trong việc đó. Chức năng ảo thì không. – jalf

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