OPENLAB-IMAGE PROCESSING

FREE KNOWLEDGE FOR ALL PEOPLE
 
Trang ChínhPortalCalendarTrợ giúpTìm kiếmThành viênNhómĐăng kýĐăng Nhập

Share | 
 

 Những vấn đề khi đọc source code

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down 
Tác giảThông điệp
jackauk
Thành viên thường
avatar

Tổng số bài gửi : 54
Điểm danh tiếng : 2
Join date : 16/08/2015
Age : 29
Đến từ : TP Hồ Chí Minh

Bài gửiTiêu đề: Những vấn đề khi đọc source code   Sun Mar 19, 2017 1:50 pm

Khi bạn đọc source code được chia sẻ hay từ các dự án lớn thì bạn sẽ thường gặp những vấn đề sau:
1/ Các cấu trúc lớp thừa kế, hàm virtual
2/ Các hàm khởi tạo
3/ Các kiểu ép kiểu và gán
4/ Các cấu trúc template

Mình sẽ nói từ từ về các mục này. Nói thật là mình không có các kiến thức vững chắc về các vấn đề này mà mình sẽ trình bày theo cách đọc tài liệu rồi trình bày cách hiểu của mình. Có thể là SAI hay chưa ĐÚNG nên mình mong người đọc chỉ ra lỗi sai của mình để mọi người cùng tiến bộ.
Bắt đầu từ:

1/ Các cấu trúc lớp thừa kế, hàm virtual

Các ngôn ngữ lập trình cấp cao đều là các OOPL (Object Oriented Programing Language_ ngôn ngữ lập trình hướng đối tượng). Bởi tính hướng đối tượng là đặc trưng của ngôn ngữ lập trình nên vấn đề này bạn sẽ gặp phải trong hầu hết các ứng dụng lớn đòi hỏi sử dụng tài nguyên và thời gian để viết mã dài. Những ứng dụng nhỏ thì khỏi phải nói rồi: vài dòng lệnh tuần tự, vài cấu trúc if else thì chẳng bàn tới.
Những ứng dụng lớn cần phải viết mã lệnh dài, sử dụng các thư viện có sẵn hay tự dựng nên mình cần tối ưu code, càng viết ngắn và càng rõ ràng, chặt chẽ thì càng tốt

Một dự án lớn thì ta phải bố trí code theo từng lớp lang không chỉ cho nó trông có vẻ chuyên nghiệp mà đơn giản là để cho chúng ta đỡ khổ khi phải làm việc với nó. Ta phân nó theo chức năng nhiệm vụ, ta phân nó theo vị trí tầm quan trong sao cho ta tiện nhất. 
Một dự án sẽ có những namespace và bên trong namespace là những class, những struct. Namespace đóng vai trò là một cái vỏ bao ngoài giúp đóng gói code thành từng vùng, khối riêng biệt
Ví dụ: Ta có namespace std là một namespace  chứa các thư viện tiêu chuẩn của C++. Ta có std::cin, std::cout cho việc xuất nhập dữ liệu từ và ra màn hình hiển thị; std::vector, std::map cho các cấu trúc mảng động; std::abs cho phép lấy giá trị tuyệt đối
Ta sẽ có thể có những hàm cin, cout, abs, cấu trúc vector, map cho riêng mình nhưng sẽ nằm ở một namespace khác.
Namespace là một lớp vỏ bao ngoài nên khi ở bất cứ đâu ta muốn bất cứ thành nào đó thuộc namespace thì  cho nó nằm trong vỏ là được

Ví dụ: Ta có 2 class ở 2 file ( .h, .cpp, .hpp thì tùy) rồi struct, enum ở file khác mà chung 1 namespace thì ta làm như sau:

Code:
File 1:
namespace  openLAB
{
class Network
{
} // KHai bao và định nghĩa lớp Network luôn
}

File 2:
namespace  openLAB
{
class Timer; // KHai báo ở đây và  định nghĩa ở chỗ khác
}

File 3:

namespace  openLAB
{
struct point3D
{
     double x;
     double y;
     double z;
     bool fixed;
};

enum
{
   NONE =0,
  PHYSIC,
  VIRTUAL
};
}

_________________
Em gọi ta khi mùa trăng đã dứt
Nắng nhạt phai, còn thanh xuân qua rồi.
Dĩ vãng êm đềm xin trôi, trôi mãi
Để ta lớn lên, bước về trời xa

Nếu một mai quay về còn gặp lại
Nửa đời thương nhớ, nửa đời vấn vương
Hoa kia xin cài vào miền quá khứ
Để nồng nàn góc phố ta gặp nhau.
Về Đầu Trang Go down
Xem lý lịch thành viên
 
Những vấn đề khi đọc source code
Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang 
Trang 1 trong tổng số 1 trang
 Similar topics
-
» Các tiêu chuẩn đánh giá ổn định nguyên vẹn tàu
» Hai cuốn catalog IMPA và ISSA
» Nơi yêu cầu tài liệu, tìm tài liệu
» Bộ luật quốc tế về Ổn định nguyên vẹn năm 2008 (IS Code 2008)
» Các công ước, bộ luật hàng hải trên tàu biển

Permissions in this forum:Bạn không có quyền trả lời bài viết
OPENLAB-IMAGE PROCESSING :: PHÒNG HỌC TẬP :: HỌC TẬP THEO CHUYÊN ĐỀ-
Chuyển đến