1/ Phương thức
Có hai cách để định nghĩa phương thức:
- Định nghĩa bên trong lớp
- Định nghĩa bên ngoài lớp
Ví dụ định nghĩa phương thức inTenTraiCay
bên trong lớp TraiCay
class TraiCay {
public:
string ten;
void inTenTraiCay() {
cout << "Toi ten: " << ten;
}
};
Ví dụ định nghĩa phương thức inTenTraiCay
bên ngoài lớp TraiCay
, như cách khai báo hàm mà các em đã học, chú ý thêm ten_lop::
class TraiCay {
public:
string ten;
void inTenTraiCay();
};
void TraiCay::inTenTraiCay() {
cout << "Toi ten: " << ten;
}
Ví dụ hoàn chỉnh
#include <iostream>
using namespace std;
class TraiCay {
public:
string ten;
void inTenTraiCay();
};
void TraiCay::inTenTraiCay() {
cout << "Toi ten: " << ten;
}
int main() {
TraiCay mit;
mit.ten = "Xoai ne";
mit.inTenTraiCay();
return 0;
}
Kết quả
Toi ten: Xoai ne
2/ Constructor
Constructor là một phương thức đặc biệt được tự động gọi khi một đối tượng của một lớp được tạo.
Để tạo constructor, chỉ cần khai báo một phương thức có tên trùng với tên lớp chứa nó.
Ví dụ
#include <iostream>
using namespace std;
class TraiCay {
public:
string ten;
// Khai bao constructor
TraiCay() {
ten = "Mit nha";
cout << "Toi ten: " << ten << "\n";
}
//
void inTenTraiCay();
};
void TraiCay::inTenTraiCay() {
cout << "Chu khong phai ten: " << ten;
}
int main() {
TraiCay mit; // tao mot doi tuong la mit, constructor TraiCay() duoc thuc thi ngay
mit.ten = "Xoai ne";
mit.inTenTraiCay();
return 0;
}
Kết quả
Toi ten: Mit nha Chu khong phai ten: Xoai ne
3/ Truyền tham số
Các phương thức và Constructor trong lớp cũng có thể được truyền tham số như một hàm bình thường
Ví dụ
#include <iostream>
using namespace std;
class TraiCay {
public:
string ten;
// Khai bao constructor
TraiCay(string name) {
ten = name;
cout << "Toi ten: " << ten << "\n";
}
//
void inTenTraiCay(string name);
};
void TraiCay::inTenTraiCay(string name) {
ten = name;
cout << "Chu khong phai ten: " << ten;
}
int main() {
string name = "Mit";
TraiCay mit(name); // tao mot doi tuong la mit, constructor TraiCay() duoc thuc thi ngay
name = "Xoai";
mit.inTenTraiCay(name);
return 0;
}
- Dòng 23 là truyền tham số
name
cho constructorTraiCay
- Dòng 25 là truyền tham số
name
cho phương thứcinTenTraiCay
Kết quả
Toi ten: Mit Chu khong phai ten: Xoai