GiaoTrinhC++(27Jun21)

(Hoang2711) #1

Thiết kế trang Web


48 • Ông Văn Thông


2. Tham số cho constructor


Constructor cũng có thể nhận tham số (giống như các function thông thường), việc nầy có thể
hữu ích để thiết lập các giá trị ban đầu cho các thuộc tính.


Class Car sau đây có các thuộc tính hieu (hiệu xe, brand), kieu (kiểu xe, model) và nam (năm sản
xuất), và một constructor Car với các thông số (a, b, c) khác nhau. Bên trong constructor chúng
ta đặt các thuộc tính bằng với số lượng tham số của constructor (hieu = a; v.v...). Khi gọi hàm
constructor (bằng cách tạo một object của class Car), chúng ta trao các tham số cho constructor,
nó sẽ gán trị cho các thuộc tính tương ứng.


Ví dụ: #include
using namespace std;
class Car { // tên class
public: // quyền truy cập
string hieu; string kieu; int nam; // thuộc tính
Car (string a, string b, int c) // constructor parameters
{ hieu = a; kieu = b; nam = c; } };
int main() {
// tạo các object Car và gọi constructor với các đối số khác nhau
Car car1("Honda", "Civic", 2012);
Car car2("Ford", "Falcon", 2010);
// in các trị
cout << car1.hieu << " " << car1.kieu << " " << car1.nam << "\n";
cout << car2.hieu << " " << car2.kieu << " " << car2.nam << "\n";
return 0; }
Kết quả: Honda Civic 2012Ford Falcon 2010


Giống như các function, constructor cũng có thể được định nghĩa bên ngoài class. Đầu tiên, khai
báo constructor bên trong class, và sau đó định nghĩa nó bên ngoài class bằng cách ghi tên của
class trước toán tử :: (scope resolution operator), tiếp theo là tên của constructor (giống như tên
class):


Ví dụ: #include
using namespace std;
class Car { public:string hieu; string kieu; int nam;
Car (string a, string b, int c); }; // khai báo constructor
Car::Car (string a, string b, int c) // định nghĩa constructor
{ hieu = a; kieu = b; nam = c; }
int main() { // tạo các Car object và in các trị
Car car1("Honda", "Civic", 2012); // create Car object
Car car2("Ford", "Falcon", 2010); // create Car object
Car car3("Toyota", "Camry", 2015); // create Car object
cout << car1.hieu << " " << car1.kieu << " " << car1.nam << "\n";
cout << car2.hieu << " " << car2.kieu << " " << car2.nam << "\n";
cout << car3.hieu << " " << car3.kieu << " " << car3.nam << "\n";
return 0; }


Kết quả:

Honda Civic 2012
Ford Falcon 2010
Toyota Camry 2015
Free download pdf