Ví dụ minh hoạ việc dùng phương thức tĩnh

Một phần của tài liệu Hàm tạo, hàm hủy và các vấn đề liên quan (Trang 40 - 42)

Xét bài toán quản lý hoá ñơn bán hàng. Mỗi hoá ñơn có 2 dữ liệu là tên hàng và tiền bán. Sử dụng hàm tạo ñể tạo ra các hoá ñơn, dùng hàm huỷ ñể bỏ ñi (loại ñi) các hoá ñơn không cần lưu trữ, dùng một phương thức ñể sửa chữa nội dung hoá ñơn (nhập lại tiền bán). Vấn ñề ñặt ra là sau một số thao tác: Tạo, sửa và huỷ hoá ñơn thì tổng số hoá ñơn còn lại là bao nhiêu và tổng số tiền trên các hoá ñơn còn lại là bao nhiêu?

Chương trình dưới ñây nhằm ñáp ứng yêu cầu ñặt ra. #include <conio.h>

#include <iostream.h> class HDBH

char *tenhang ; double tienban ; static int tshd ;

static double tstienban ; public:

HDBH(char *tenhang1=NULL,double tienban1=0.0 ) { tienban=tienban1; tenhang=tenhang1; ++tshd; tstienban += tienban; } ~HDBH() { --tshd; tstienban -= tienban; } void sua(); static void in(); } ;

int HDBH::tshd=0;

double HDBH::tstienban=0; void HDBH::in()

{

cout <<"\n\nTong so hoa don: " << tshd; cout <<"\nTong so tien: " << tstienban; }

void HDBH::sua() {

cout << "\n\nTen hang: " << tenhang; cout << "\nTien ban : " << tienban; tstienban -= tienban;

cout << "\nSua tien ban thanh : " ; cin >> tienban;

}

void main() {

HDBH *h1 = new HDBH("Xi mang",2000); HDBH *h2 = new HDBH("Sat thep",3000); HDBH *h3 = new HDBH("Ti vi",4000); clrscr(); HDBH::in(); getch(); delete h1; HDBH::in(); getch(); h2->sua(); HDBH::in(); getch(); delete h3; HDBH::in(); getch(); }

§ 9. CẤP PHÁT BỘ NHỚ CHO ðỐI TƯỢNG 9.1. Cách cấp phát bộ nhớ cho ñối tượng

Có thể dùng new và tên lớp ñể cấp phát một vùng nhớ cho một hoặc một dẫy các ñối tượng. Bộ nhớ cấp phát ñược quản lý bởi một con trỏ kiểu ñối tượng. Ví dụ sau khi ñã ñịnh nghĩa lớp DIEM như trong mục trên, ta có thể thực hiện các lệnh cấp phát bộ nhớ như sau:

int n = 10;

DIEM *p, *q, *r ;

p = new DIEM ; // Cấp phát bộ nhớ cho một ñối tượng q = new DIEM[n] ; //Cấp phát bộ nhớ cho n ñối tượng r = new DIEM(200,100); // Cấp phát bộ nhớ và khởi gán cho

// một ñối tượng

Một phần của tài liệu Hàm tạo, hàm hủy và các vấn đề liên quan (Trang 40 - 42)