1. Trang chủ
  2. » Công Nghệ Thông Tin

Đối tượng hằng, phương thức hằng

4 157 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 4
Dung lượng 18,04 KB

Nội dung

Đối tượng hằng, phương thức hằng + Cũng giống như các phần tử dữ liệu khác, một đối tượng có thể được khai báo là hằng bằng cách dùng từ khoá const. Ví dụ: class DIEM { private: int x, y; int m; public: DIEM() { x = y = m = 0; } DIEM(int x1, int y1, int m1=15) { x= x1; y= y1; m= m1; } . } ; const DIEM d = DIEM(200,100); // Khai báo đối tượng hằng + Khi khai báo cần sử dụng các hàm tạo để khởi gán giá trị cho đối tượng hằng. Giá trị khởi tạo có thể là các hằng, các biến, các biểu thức và các hàm, ví dụ: int x0=100, y0=50; m0 =4; const DIEM d5 = DIEM(x0 + getmaxx()/2, y0 + getmaxy()/2, m0); + Các phương thức có thể sử dụng cho các đối tượng hằng là hàm tạo và hàm huỷ. Về lý thuyết các đối tượng hằng không thể bị thay đổi, mà chỉ được tạo ra hoặc huỷ bỏ đi. Khi dùng một phương thức cho đối tượng hằng, thỡ CTBD (Chương trỡnh biờn dich) sẽ cảnh bỏo (warning): Non-const function called for const object Tuy nhiên, chương trỡnh EXE vẫn được tạo và khi thực hiện chương trỡnh, thỡ nội dung cỏc đối tượng hằng vẫn bị thay đổi. Chương trỡnh dưới đây sẽ minh hoạ điều này. Chương trỡnh đưa vào lớp PS (phân số). Phương thức toán tử ++ vẫn có thể làm thay đổi đối tượng hằng (mặc dù khi biên dịch có 3 cảnh báo). //CT4_19.CPP // doi tuong const // Lop PS (phan so) #include <conio.h> #include <iostream.h> #include <string.h> 224 #include <math.h> class PS { private: int t,m; public: PS() { t = m = 0; } PS(int t1, int m1) { t = t1; m = m1; } PS operator++() { t += m ; return *this ; } void in() { cout << "\nPS= " << t << "/" << m; } void nhap() { cout << "\n Nhap tu va mau: " ; cin >> t >> m; } } ; void main() { int t1=-3, m1=5; const PS p = PS(abs(t1)+2,m1+2); // Khai báo đối tượng hằng clrscr(); p.in(); ++p; p.in(); getch(); } 226 + Phương thức const Để biến một phương thức thành const ta chỉ việc viết thêm từ khoá const vào sau dũng đầu của phương thức. Chỳ ý: Nếu phương thức được khai báo bên trong và định nghĩa bên ngoài lớp, thỡ từ khoỏ const cần được bổ sung cả trong khai báo và định nghĩa phương thức. Trong thân phương thức const không cho phép làm thay đổi các thuộc tính của lớp. Vị vậy việc dùng phương thức const cho các đối tượng hằng sẽ đảm bảo giữ nguyên nội dung của các đối tượng hằng. Đương nhiên các phương thức const vẫn dùng được cho các đối tượng khác. Ví dụ sau về lớp PS (phân số) minh hoạ việc dùng phương thức const. // Đối tượng const // Phương thức const // Lop PS (phan so) #include <conio.h> #include <iostream.h> #include <string.h> #include <math.h> class PS { private: int t,m; public: PS() { t = m = 0; } PS(int t1, int m1) { t = t1; m = m1; } PS operator++() { t += m ; return *this ; } void in() const ; void nhap() { cout << "\n Nhap tu va mau: " ; cin >> t >> m; } } ; void PS::in() const { cout << "\nPS= " << t << "/" << m; } void main() { int t1=-3, m1=5; const PS p = PS(abs(t1)+2,m1+2); PS q; clrscr(); q.nhap(); p.in(); q.in(); getch(); } 228 . Đối tượng hằng, phương thức hằng + Cũng giống như các phần tử dữ liệu khác, một đối tượng có thể được khai báo là hằng bằng cách dùng. đối tượng hằng + Khi khai báo cần sử dụng các hàm tạo để khởi gán giá trị cho đối tượng hằng. Giá trị khởi tạo có thể là các hằng, các biến, các biểu thức

Ngày đăng: 25/10/2013, 04:20

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w