Tại sao file cpp cần file header

Tại sao cần phải táchKhi lập trình với bất cứ ngôn ngữ nào thì các bạn cũng đều gặp phải một vấn đề là khi chương trình bắt đầu lớn thì sẽ khó quản lý mã nguồn. Đó là lúc bạn muốn chia chúng thành các file riêng, mỗi file làm một nhiệm vụ riêng và khi cần thì “include” chúng vào chương trình.

Trong C++ hoặc các ngôn ngữ lập trình hướng đối tượng như Java, C#, chúng ta còn muốn chia mỗi lớp vào một file riêng, như vậy sẽ tiện hơn thay vì tống tất cả các lớp vào một chỗ.

Việc tách ra cũng giúp bạn dễ dàng hơn trong việc tái sử dụng mã nguồn, thay vì mỗi lần ‘tái sử dụng’ bạn phải copy-paste mã nguồn thì bây giờ bạn chỉ cần ‘include’ những file nào cần sử dụng là có thể dùng.

Chương trình khi chưa tách

Ví dụ sau đây là một chương trình đơn giản [được tôi thiết kế theo mô hình MVC – tôi sẽ có một bài viết về MVC ở dịp khác] cho phép thiết lập giá trị cho một biến, tăng, giảm giá trị biến đó và hiển thị giá trị biến đó ra màn hình.

/* MVC example */
#include 
using namespace std;

class Model {
	int value;
	public:
		Model[] { value = 0; }
		int getValue[] { return value; }
		void setValue[int];
		void decrease[] { value--; }
		void increase[] { value++; }
};

void Model::setValue[int value] {
	this->value = value;
}

class View {
	Model *model;
	void showValue[];
	public:
		View[Model *];
		void showMenu[];
		void process[];
};

View::View[Model *model] {
	this->model = model;
}

void View::showValue[] {
	if [model != NULL] {
		cout 

Chủ Đề