Menu
CoddyTech

Phương thức (hàm thành viên)

Thuộc phần Lập trình hướng đối tượng trong hành trình C++ của Coddy. Bài học 8 trên 104.

Hàm thành viên xác định những gì một đối tượng có thể làm. Chúng có kiểu trả về, tên và các tham số tùy chọn.

Phương thức trả về một giá trị

class Calculator {
public:
    int add(int a, int b) {
        return a + b;
    }
};

Phương thức void (không có giá trị trả về)

class Printer {
public:
    void printMessage(std::string msg) {
        std::cout << msg << std::endl;
    }
};

Phương thức trả về giá trị bool

class Checker {
public:
    bool isPositive(int num) {
        return num > 0;
    }
};

Khai báo trong tệp tiêu đề, triển khai trong tệp nguồn

// Calculator.h
class Calculator {
public:
    int add(int a, int b);
};

// Calculator.cpp
int Calculator::add(int a, int b) {
    return a + b;
}

Kiểu trả về đứng trước tên phương thức. Dùng void khi phương thức không trả về gì. Toán tử phân giải phạm vi :: liên kết phần triển khai với lớp tương ứng.

challenge icon

Thử thách

Trung bình

Triển khai bốn hàm thành viên cho lớp StringHelper với các kiểu trả về và tham số khác nhau:

  • getLength(): trả về int, độ dài của văn bản
  • toUpperCase(): trả về std::string, văn bản viết hoa
  • contains(std::string word): trả về bool, cho biết văn bản có chứa từ đó hay không
  • repeat(int times): trả về std::string, văn bản được lặp lại kèm dấu cách

Tự làm thử

#include <iostream>
#include "StringHelper.h"

int main() {
    std::string input;
    std::getline(std::cin, input);
    
    StringHelper helper;
    helper.text = input;
    
    std::cout << "Original: " << helper.text << std::endl;
    std::cout << "Length: " << helper.getLength() << std::endl;
    std::cout << "Uppercase: " << helper.toUpperCase() << std::endl;
    std::cout << "Contains 'World': " << (helper.contains("World") ? "yes" : "no") << std::endl;
    std::cout << "Repeated: " << helper.repeat(3) << std::endl;
    return 0;
}
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Lập trình hướng đối tượng

Tự luyện tập: Trình biên dịch C++ online