Trang Chủ Tài chính Cá nhân 10 Cách để tránh lỗi trong C ++ - núm vú

10 Cách để tránh lỗi trong C ++ - núm vú

Mục lục:

Video: Tránh Các Lỗi Thường Gặp Khi Cài Game Trên Win 10 2025

Video: Tránh Các Lỗi Thường Gặp Khi Cài Game Trên Win 10 2025
Anonim

Thật là một điều không may là bạn sẽ dành nhiều thời gian tìm kiếm và gỡ bỏ lỗi hơn là bạn sẽ dành thật sự viết các chương trình C ++ của mình ở nơi đầu tiên. Các đề xuất ở đây có thể giúp bạn giảm thiểu số lỗi bạn đưa vào chương trình của mình để làm cho chương trình trở thành trải nghiệm thú vị hơn.

Kích hoạt tất cả các cảnh báo và thông báo lỗi

Cú pháp của C ++ cho phép kiểm tra lỗi rất nhiều. Khi trình biên dịch gặp một cấu trúc mà nó không thể giải mã, nó không có sự lựa chọn nào khác ngoài việc đưa ra một thông báo. Nó cố gắng đồng bộ hóa lại với mã nguồn (đôi khi ít hơn thành công), nhưng nó sẽ không tạo ra một thực thi. Điều này buộc các lập trình để sửa chữa tất cả các thông báo lỗi.

Vô hiệu hoá hoặc bỏ qua cảnh báo là một ý tưởng tồi tệ. Đó là một chút giống như tháo đèn "kiểm tra công cụ" trên bảng điều khiển xe của bạn bởi vì nó làm phiền bạn. Bỏ qua vấn đề không làm cho nó biến mất.

Khi bạn đọc mã sạch sẽ và gọn gàng và theo một phong cách bạn quen thuộc, bạn dành rất ít sức mạnh của não để phân tích cú pháp cú pháp của câu lệnh C ++. Điều này làm cho CPU có thêm sức mạnh để giải mã chương trình đang cố gắng thực hiện chứ không phải là làm thế nào.

Sự khác biệt giữa tên lớp, tên đối tượng và tên hàm

Hiểu rõ lớp, chức năng hay đối tượng được sử dụng cho, dựa trên tên của nó

Phân biệt các biểu tượng tiền xử lý từ các ký hiệu C ++ (nghĩa là # xác định các đối tượng nên nổi bật)

Xác định các khối mã C ++ ở cùng mức (đây là kết quả của sự nhất quán nhất quán)

  • In Ngoài ra, bạn cần thiết lập một định dạng tiêu chuẩn cho các tiêu đề mô đun cung cấp thông tin về các chức năng hoặc các lớp học trong mỗi mô-đun, tác giả, ngày, phiên bản, và một cái gì đó về lịch sử sửa đổi.

  • Tất cả các lập trình tham gia vào một dự án duy nhất nên sử dụng cùng kiểu mã hóa. Một chương trình được viết bằng một sự chắp vá các phong cách mã hóa khác nhau là khó hiểu và có vẻ không chuyên nghiệp.

  • Nhận xét mã khi bạn viết nó

  • Bạn có thể tránh lỗi nếu bạn bình luận mã của bạn trong khi viết nó, thay vì đợi cho đến khi mọi thứ hoạt động và sau đó quay lại và thêm ý kiến.

Việc xây dựng ý kiến ​​buộc bạn phải ghi lại những gì bạn đang cố gắng làm. Ý kiến ​​ngắn gọn đang được soi sáng, cả khi bạn đọc chúng sau đó và khi bạn viết chúng. Viết nhận xét như thể bạn đang nói chuyện với một lập trình viên có kiến ​​thức khác.

Kéo từng đường dẫn trong trình gỡ lỗi ít nhất một lần

Là một lập trình viên, bạn phải hiểu chương trình của bạn đang làm gì. Không đủ để chương trình đưa ra giá trị kỳ vọng. Bạn cần phải hiểu tất cả mọi thứ chương trình của bạn đang làm. Không có gì giúp bạn cảm thấy tốt hơn về những gì đang diễn ra bên dưới mui xe hơn là

chương trình đơn bước, thực hiện từng bước một với một trình sửa lỗi tốt (như chương trình đi kèm với Code:: Blocks).

Ngoài ra, khi bạn gỡ lỗi một chương trình, bạn cần nguyên liệu để tìm ra một số hành vi kỳ quặc có thể mọc lên khi chương trình chạy. Không có gì cung cấp cho bạn các tài liệu đó tốt hơn là chỉ đơn lẻ bước qua từng chức năng khi nó được đưa vào sử dụng.

Cuối cùng, khi một chức năng đã hoàn thành và sẵn sàng để được thêm vào chương trình, mỗi con đường hợp lý cần phải được đi du lịch ít nhất một lần. Các lỗi dễ tìm thấy hơn nhiều khi bạn kiểm tra chức năng của chính nó hơn là sau khi nó đã được ném vào nồi với các chức năng còn lại - do đó, sự chú ý của bạn đã đi vào những thách thức lập trình mới. Giới hạn khả năng hiển thị Hạn chế tầm nhìn của lớp nội bộ đối với thế giới bên ngoài là một nền tảng của việc lập trình hướng đối tượng. Lớp học phải chịu trách nhiệm về trạng thái nội bộ của nó - nếu cái gì đó bị dính vào lớp học, thì đó là lỗi của lập trình viên lớp. Các lập trình viên ứng dụng nên lo lắng về việc giải quyết vấn đề trong tầm tay.

Cụ thể, khả năng hiển thị hạn chế có nghĩa là các thành viên dữ liệu không nên truy cập được bên ngoài lớp học - nghĩa là họ phải được đánh dấu là được bảo vệ. Ngoài ra, các chức năng thành viên mà phần mềm ứng dụng không cần biết cũng phải được đánh dấu bảo vệ. Không để lộ bất kỳ nội dung nào trong lớp hơn là cần thiết để hoàn thành công việc.

Theo dõi bộ nhớ heap

Việc mất bộ nhớ heap là lỗi phổ biến nhất trong các chương trình đã được phát hành trên thực địa - và đồng thời là vấn đề khó nhất để theo dõi và xóa. (Do loại lỗi này rất khó tìm và loại bỏ, nó phổ biến trong các chương trình bạn mua.) Bạn có thể phải chạy một chương trình hàng giờ trước khi các vấn đề bắt đầu phát sinh (phụ thuộc vào mức độ rò rỉ bộ nhớ là gì).

Theo nguyên tắc chung, các lập trình viên nên luôn luôn phân bổ và giải phóng bộ nhớ heap ở cùng mức ". "Nếu một thành viên MyClass chức năng:: create () phân bổ một khối bộ nhớ heap và trả lại nó cho người gọi, sau đó nên có một MyClass thành viên:: release () trả về heap.Cụ thể, MyClass:: create () không nên yêu cầu chức năng cha để giải phóng bộ nhớ.

Nếu có thể, MyClass sẽ tự theo dõi các con trỏ bộ nhớ đó và xóa nó trong destructor.

Chỉ ra zero out sau khi xóa những gì họ trỏ đến

Hãy chắc chắn rằng bạn không ra con trỏ sau khi chúng không còn giá trị; bạn làm như vậy bằng cách gán cho họ giá trị nullptr. Các lý do cho hành động này trở nên rõ ràng với kinh nghiệm: Bạn có thể tiếp tục sử dụng một khối bộ nhớ đã được trả lại cho đống và thậm chí không biết nó. Một chương trình có thể chạy tốt 99 phần trăm thời gian, làm cho rất khó để tìm thấy 1 phần trăm các trường hợp mà khối được tái phân bổ và chương trình không làm việc.

Nếu bạn bỏ các con trỏ không hợp lệ và bạn cố gắng sử dụng chúng để lưu trữ giá trị (bạn không thể lưu trữ bất cứ thứ gì ở hoặc gần vị trí null), chương trình của bạn sẽ sụp đổ ngay lập tức. Sự cố xảy ra có vẻ không ổn, nhưng nó không phải là vấn đề. Vấn đề là ở đó; nó chỉ đơn thuần là một câu hỏi liệu bạn có tìm thấy nó hay không trước khi đưa nó vào sản xuất.

Sử dụng ngoại lệ để xử lý lỗi

Cơ chế ngoại lệ trong C ++ được thiết kế để xử lý các lỗi một cách thuận tiện và hiệu quả. Nói chung, bạn nên ném một chỉ báo lỗi chứ không phải trả lại một lá cờ lỗi. Mã kết quả dễ viết, đọc và duy trì. Bên cạnh đó, các lập trình viên khác đã mong đợi nó, và bạn sẽ không muốn làm họ thất vọng, đúng không?

Giới hạn việc sử dụng ngoại lệ của bạn cho các lỗi thực sự. Không cần phải ném ra một ngoại lệ từ một chức năng mà trả về một chỉ báo "không làm việc" nếu đây là một phần của cuộc sống hàng ngày cho chức năng đó.

Khai báo destructors ảo

Đừng quên tạo một destructor cho lớp của bạn nếu constructor phân bổ các tài nguyên như heap memory cần phải trả lại khi đối tượng đạt đến sự chết. Đã tạo ra một destructor, đừng quên tuyên bố nó ảo.

"Nhưng," bạn nói, "lớp của tôi không được thừa kế từ bất cứ điều gì, và nó không bị phân lớp bởi một lớp khác. "Có, nhưng nó

có thể

trở thành một lớp cơ sở trong tương lai. Trừ khi bạn có một số lý do chính đáng để không tuyên bố destructor ảo, sau đó làm như vậy khi bạn lần đầu tiên tạo ra các lớp học.

Cung cấp một nhà xây dựng bản sao và nhà điều hành chuyển nhượng quá tải

Nếu lớp học của bạn cần một destructor, nó chắc chắn sẽ cần một nhà xây dựng bản sao và một nhà khai thác chuyển nhượng quá tải. Nếu nhà xây dựng của bạn phân bổ các tài nguyên như bộ nhớ heap, nhà thầu tạo bản sao mặc định và toán tử phân công sẽ không làm gì cả nhưng tạo ra sự tàn phá bằng cách tạo nhiều con trỏ tới cùng các tài nguyên. Khi destructor cho một trong những đối tượng này được gọi, nó sẽ khôi phục lại tài sản. Khi destructor cho các bản sao khác đi kèm, nó sẽ vít thứ lên.

10 Cách để tránh lỗi trong C ++ - núm vú

Lựa chọn của người biên tập

Làm thế nào để Lưu tệp vào OneDrive từ iPad của bạn - núm vú

Làm thế nào để Lưu tệp vào OneDrive từ iPad của bạn - núm vú

Chia sẻ là chăm sóc và bạn có thể lưu tệp Word, Excel hoặc PowerPoint vào iPad hoặc máy tính để bàn của bạn trực tiếp vào thư mục OneDrive. Sau khi tệp tin trên OneDrive, những người khác có quyền truy cập vào thư mục trên OneDrive có thể mở tệp. Họ có thể mở nó trong Văn phòng cho ứng dụng iPad, Office ...

Làm thế nào để liên kết đến một tập tin cục bộ trong Office 2011 for Mac - núm vú

Làm thế nào để liên kết đến một tập tin cục bộ trong Office 2011 for Mac - núm vú

Một trong các công cụ hữu ích nhất trong Office 2011 cho mac là khả năng tạo siêu liên kết đến bất cứ đâu. Bạn có thể liên kết đến bất kỳ tập tin nào trên máy tính của bạn; những tập tin này là các tập tin địa phương. Để kết nối với các tệp cục bộ, bạn có thể sử dụng hai loại liên kết: Tuyệt đối: Loại liên kết này có chứa ...

Cách đăng nhập vào OneDrive từ phần mềm

Cách đăng nhập vào OneDrive từ phần mềm

OneDrive là một thành phần của Office 365, Dịch vụ trực tuyến của Microsoft. Trước khi bạn có thể lưu trữ, chia sẻ, hoặc đồng chỉnh sửa các tập tin trên OneDrive từ iPad, bạn phải đăng nhập vào OneDrive. Đọc tiếp để tìm hiểu cách đăng nhập từ Office cho iPad và đăng nhập từ một trình duyệt web. OneDrive ...

Lựa chọn của người biên tập

Cách sắp xếp các tệp phương tiện cho WordPress Blog của bạn - núm vú

Cách sắp xếp các tệp phương tiện cho WordPress Blog của bạn - núm vú

Nếu bạn đã chạy blog của bạn trong bất kỳ khoảng thời gian nào, bạn có thể dễ dàng quên những tệp bạn đã tải lên bằng trình tải lên WordPress. Thư viện Truyền thông WordPress giúp bạn dễ dàng và dễ dàng khám phá những tệp nào trong thư mục Uploads của bạn. Để tìm tệp hình ảnh, video hoặc âm thanh mà bạn đã tải lên bằng cách sử dụng <

Làm thế nào để tối ưu Blog WordPress của bạn cho Công cụ Tìm kiếm - núm vú

Làm thế nào để tối ưu Blog WordPress của bạn cho Công cụ Tìm kiếm - núm vú

Bạn muốn mọi người tìm thấy blog WordPress của bạn, nếu không bạn sẽ không dành thời gian để viết nó. WordPress được trang bị để tạo ra một môi trường thân thiện với các công cụ tìm kiếm, cho phép họ điều hướng dễ dàng thông qua các kho lưu trữ, các loại và các trang của bạn. WordPress cung cấp môi trường này với một cơ sở mã sạch, nội dung dễ dàng cập nhật thông qua ...

Làm thế nào để Thực hiện Từ khoá trong trang WordPress của bạn với Permalinks

Làm thế nào để Thực hiện Từ khoá trong trang WordPress của bạn với Permalinks

Cho thứ hạng cao hơn cho trang web WordPress của bạn, sử dụng các liên kết tùy chỉnh với từ khoá. Bằng cách sử dụng các liên kết tuỳ chỉnh, bạn tự động chèn từ khoá vào URL của các bài đăng và trang của bạn, cho phép các công cụ tìm kiếm bao gồm các bài đăng và trang đó trong cơ sở dữ liệu thông tin về những chủ đề đó. Nếu trang web của bạn được lưu trữ bởi nhà cung cấp có

Lựa chọn của người biên tập

Làm thế nào để gửi chú thích để chia sẻ chúng trong OneNote 2013 - núm vú

Làm thế nào để gửi chú thích để chia sẻ chúng trong OneNote 2013 - núm vú

Một trong những phương pháp đơn giản chia sẻ một ghi chú với OneNote 2013 bằng cách gửi nó dưới dạng tệp tin tới người nhận e-mail hoặc thậm chí với Microsoft Word hoặc blog của bạn. Để gửi lưu ý hiện tại dưới dạng tệp tin, hãy làm theo các bước sau: Mở ghi chú mà bạn muốn chia sẻ trong OneNote 2013 và chọn <...

Làm thế nào để Đồng bộ hóa Ghi chú trong OneNote 2013 - núm vú

Làm thế nào để Đồng bộ hóa Ghi chú trong OneNote 2013 - núm vú

OneNote 2013 khoảng cách bản thân từ khái niệm toàn bộ các tệp lưu thủ công trong lợi của đồng bộ hóa chúng. Bạn có thể đồng bộ tập tin tự động hoặc thủ công. Điều này cho phép bạn tự do khi quản lý các tệp của mình. Làm thế nào để đồng bộ tự động trong OneNote OneNote tự động lưu các ghi chú của bạn mỗi khi bạn thực hiện bất kỳ thay đổi ở tất cả để một máy tính xách tay, phần, ...

Cách Quản lý Máy tính xách tay OneNote 2013 với SkyDrive - núm vú

Cách Quản lý Máy tính xách tay OneNote 2013 với SkyDrive - núm vú

SkyDrive có thể truy cập qua đám mây, 't có một ứng dụng SkyDrive được cài đặt trên thiết bị. Điều này giúp bạn dễ dàng quản lý máy tính xách tay OneNote 2013 từ bất kỳ thiết bị nào có truy cập internet. Cách quản lý máy tính xách tay với SkyDrive trên web Bạn có thể truy cập dịch vụ từ bất cứ thiết bị nào bạn đang sử dụng miễn là nó hỗ trợ