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 constructor TraiCay
  • Dòng 25 là truyền tham số name cho phương thức inTenTraiCay

Kết quả

Toi ten: Mit
Chu khong phai ten: Xoai