Trong lập trình bằng ngôn ngữ C++, việc sử dụng hàm để thực hiện một nhiệm vụ cụ thể là phương pháp rất thông dụng. Một hàm có thể hoặc không thể trả về giá trị cho vị trí mà nó được gọi. Để trả về một giá trị từ một hàm, người lập trình sử dụng từ khóa "return". Bài viết này sẽ giúp bạn hiểu cách sử dụng từ khóa này một cách hiệu quả.
Định nghĩa hàm trả về giá trị
Khi định nghĩa một hàm mà bạn muốn trả về giá trị, bạn phải chỉ định kiểu dữ liệu của giá trị mà hàm đó sẽ trả về. Chẳng hạn, nếu bạn muốn hàm trả về một số nguyên, bạn sẽ sử dụng int
như sau:
int congHaiSo(int a, int b) {
return a + b;
}
Trong ví dụ trên, hàm congHaiSo
nhận hai tham số kiểu int
và trả về tổng của chúng. Từ khóa return
được sử dụng để trả về kết quả của phép cộng.
Cách sử dụng từ khóa "return"
Từ khóa này kết thúc thực thi của hàm và trả lại giá trị ngay lập tức cho vị trí mà hàm được gọi. Điều này có nghĩa là bất kỳ câu lệnh nào sau câu lệnh return
không được thực thi:
int demoHam() {
return 1;
std::cout << "Điều này sẽ không được in ra" << std::endl;
}
Trả về các kiểu dữ liệu khác nhau
Bạn có thể trả về bất kỳ kiểu dữ liệu nào từ một hàm, bao gồm các kiểu dữ liệu cơ bản như int
, float
, double
, char
, và cả kiểu dữ liệu phức tạp như struct
, class
.
Ví dụ trả về giá trị kiểu double
:
double nhanHai(float x) {
return x * 2.0;
}
Ví dụ trả về giá trị kiểu string
(yêu cầu thư viện <string>
) :
#include <string>
std::string chaoHoi(const std::string& ten) {
return "Xin chào, " + ten + "!";
}
Trả về con trỏ và tham chiếu
C++ cho phép bạn trả về cả con trỏ và tham chiếu từ một hàm. Tuy nhiên, cần cẩn thận khi trả về con trỏ hoặc tham chiếu tới các biến cục bộ vì chúng sẽ không còn tồn tại khi hàm kết thúc.
Ví dụ trả về con trỏ:
int* taoConTro(int giaTri) {
int* ptr = new int;
*ptr = giaTri;
return ptr;
}
Ví dụ trả về tham chiếu:
int& timGiaTriThapNhat(int& a, int& b) {
return (a < b) ? a : b;
}
Lưu ý về bộ nhớ
Khi bạn trả về một con trỏ, cần đảm bảo giải phóng bộ nhớ để tránh rò rỉ bộ nhớ. Tương tự, khi trả về tham chiếu tới biến cục bộ, hãy chắc chắn biết rõ biến đó sẽ còn tồn tại sau khi hàm kết thúc.
Hàm không trả về giá trị
Đối với những hàm không cần trả về giá trị, bạn sử dụng từ khóa void
:
void hienThiLoiChao() {
std::cout << "Xin chào, mọi người!" << std::endl;
}
Từ khóa return
trong hàm kiểu void
chỉ đơn giản là kết thúc hàm mà không trả về bất kỳ giá trị nào.
void ketThucSom() {
std::cout << "Bắt đầu hàm" << std::endl;
return;
std::cout << "Điều này sẽ không được in ra" << std::endl;
}
Kết luận
Từ khóa return
là công cụ mạnh mẽ và cần thiết trong C++. Việc hiểu rõ cách sử dụng nó sẽ giúp bạn viết chương trình dễ đọc và hiệu quả hơn. Dù là trả về các kiểu dữ liệu cơ bản hay phức tạp, việc sử dụng return
đúng cách là bước đầu tiên để tạo nên những hàm hữu dụng và mạnh mẽ trong C++.
Comments