.11| Tách biệt giữa khai báo và định nghĩa phương thức

Một phần của tài liệu Tài liệu giảng dạy kỹ thuật lập trình 2 (Trang 71 - 73)

Trong những dự án lớn, chúng ta cần phân tách riêng giữa lời định nghĩa phương thức và khai báo phương thức.

Thay vì viết vào một tập tin như thế này:

Mỗi lớp chúng ta nên tách thành 2 tập tin: *.h và *.cpp: // File myclass.h

class MyClass {

public:

void my_method() const; // Method declaration };

// File myclass.cpp

// Include the class declaration #include "myclass.h"

#include <iostream> // Method definition

void MyClass::my_method() const {

std::cout << "Executing \"my_method\"\n"; }

Tài liệu giảng dạy Kỹ Thuật Lập Trình 2 Trang 68

Để định nghĩa phương thức trong tập tin nguồn (.cpp) chúng ta sử dụng toán tử phạm vi :: kết hợp với tên lớp đứng trước tên phương thức để chỉ phưng thức đó thuộc lớp nào. Chúng ta sẽ thêm chỉ thị #include tập tin .h vào trong tập tin nguồn. Xét một ví dụ khác: //pointsplit.h class Point { double x; double y; public:

Point(double x, double y); double get_x() const;

double get_y() const; void set_x(double x); void set_y(double y); };

// Pointsplit.cpp //Point constructor

Point::Point(double x, double y): x(x), y(y) {} // Get the x value

double Point::get_x() const {

return x; }

// Get the y value

double Point::get_y() const {

return y; }

// Set the x value

void Point::set_x(double x) {

this->x = x; }

// Set the y value

void Point::set_y(double v) {

this->y = y; }

Tài liệu giảng dạy Kỹ Thuật Lập Trình 2 Trang 69

Nhiều lập trình viên C++ tách mã nguồn ra như thế này là vì một vài lí do sau: Nếu một lớp được sử dụng ở nhiều chương trình, trình biên dịch phải biên dịch lại phương thức mỗi khi file header (.h) được #include vào file mã nguồn. Nếu được phân tách thì trình biên dịch có thể biên dịch mã nguồn cho file định nghĩa một lần, và khi đó trình liên kết có thể kết nối những đoạn mã đã được biên dịch này với nơi sử dụng.

Một phần của tài liệu Tài liệu giảng dạy kỹ thuật lập trình 2 (Trang 71 - 73)

Tải bản đầy đủ (PDF)

(143 trang)