Các hàm trong C ++

Trong hướng dẫn này, chúng ta sẽ tìm hiểu về hàm C ++ và các biểu thức hàm với sự trợ giúp của các ví dụ.

Hàm là một khối mã thực hiện một nhiệm vụ cụ thể.

Giả sử chúng ta cần tạo một chương trình để tạo một hình tròn và tô màu cho nó. Chúng ta có thể tạo hai hàm để giải quyết vấn đề này:

  • a function to draw the circle
  • a function to color the circle

Việc chia một vấn đề phức tạp thành các phần nhỏ hơn giúp chương trình của chúng tôi dễ hiểu và có thể sử dụng lại.

Có hai loại chức năng:

  1. Chức năng Thư viện Chuẩn: Được xác định trước trong C ++
  2. Chức năng do người dùng xác định: Do người dùng tạo

Trong hướng dẫn này, chúng tôi sẽ tập trung chủ yếu vào các chức năng do người dùng xác định.

C ++ Hàm do người dùng định nghĩa

C ++ cho phép lập trình viên xác định chức năng của riêng họ.

Nhóm chức năng do người dùng định nghĩa nhóm mã để thực hiện một nhiệm vụ cụ thể và nhóm mã đó được đặt một tên (định danh).

Khi hàm được gọi từ bất kỳ phần nào của chương trình, tất cả nó sẽ thực thi các mã được xác định trong phần thân của hàm.

Khai báo hàm C ++

Cú pháp để khai báo một hàm là:

returnType functionName (parameter1, parameter2,...) {
    // function body   
}

Đây là một ví dụ về khai báo hàm.
 

// function declaration
void greet() {
    cout << "Hello World";
}

Đây,

  • the name of the function is greet()
  • the return type of the function is void
  • the empty parentheses mean it doesn’t have any parameters
  • the function body is written inside {}

Lưu ý: Chúng ta sẽ tìm hiểu về returnTypevà parametersở phần sau của hướng dẫn này.

Gọi một hàm

Trong chương trình trên, chúng ta đã khai báo một hàm có tên greet(). Để sử dụng greet()hàm, chúng ta cần gọi nó.

Đây là cách chúng ta có thể gọi greet()hàm trên .

int main() {
     
    // calling a function   
    greet(); 

}

Cách hàm hoạt động trong C ++

Ví dụ 1: Hiển thị Văn bản

#include <iostream>
using namespace std;

// declaring a function
void greet() {
    cout << "Hello there!";
}

int main() {

    // calling the function
    greet();

    return 0;
}

Đầu ra

Hello there!

Tham số chức năng

Như đã đề cập ở trên, một hàm có thể được khai báo với các tham số (đối số). Tham số là một giá trị được truyền khi khai báo một hàm.

Ví dụ, chúng ta hãy xem xét chức năng dưới đây:

void printNum(int num) {
    cout << num;
}

Ở đây, intbiến num là tham số của hàm.

Chúng tôi truyền một giá trị cho tham số hàm trong khi gọi hàm.

int main() {
    int n = 7;
    
    // calling the function
    // n is passed to the function as argument
    printNum(n);
    
    return 0;
}

Ví dụ 2: Hàm với các tham số

// program to print a text

#include <iostream>
using namespace std;

// display a number
void displayNum(int n1, float n2) {
    cout << "The int number is " << n1;
    cout << "The double number is " << n2;
}

int main() {
     
     int num1 = 5;
     double num2 = 5.5;

    // calling the function
    displayNum(num1, num2);

    return 0;
}

Đầu ra

The int number is 5
The double number is 5.5

Trong chương trình trên, chúng ta đã sử dụng một hàm có một inttham số và một doubletham số.

Sau đó, chúng tôi chuyển num1 và num2 làm đối số. Các giá trị này được lưu trữ bởi các tham số hàm n1 và n2 tương ứng.Hàm C ++ với các tham số

Lưu ý: Kiểu của các đối số được truyền trong khi gọi hàm phải khớp với các tham số tương ứng được xác định trong khai báo hàm.

Báo cáo trả hàng

Trong các chương trình trên, chúng ta đã sử dụng void trong khai báo hàm. Ví dụ,

void displayNumber() {
    // code
}

Điều này có nghĩa là hàm không trả về bất kỳ giá trị nào.

Cũng có thể trả về một giá trị từ một hàm. Đối với điều này, chúng ta cần xác định returnTypechức năng của hàm trong khi khai báo hàm.

Sau đó, returncâu lệnh có thể được sử dụng để trả về một giá trị từ một hàm.

Ví dụ,

int add (int a, int b) {
   return (a + b);
}

Ở đây, chúng tôi có kiểu dữ liệu intthay vì void. Điều này có nghĩa là hàm trả về một intgiá trị.

Đoạn mã return (a + b);trả về tổng của hai tham số dưới dạng giá trị hàm.

Câu returnlệnh biểu thị rằng chức năng đã kết thúc. Bất kỳ mã nào sau khi returnbên trong hàm đều không được thực thi.

Ví dụ 3: Cộng hai số

// program to add two numbers using a function

#include <iostream>

using namespace std;

// declaring a function
int add(int a, int b) {
    return (a + b);
}

int main() {

    int sum;
    
    // calling the function and storing
    // the returned value in sum
    sum = add(100, 78);

    cout << "100 + 78 = " << sum << endl;

    return 0;
}

Đầu ra

100 + 78 = 178

Trong chương trình trên, add()hàm dùng để tìm tổng của hai số.

Chúng tôi truyền hai intký tự 100và 78trong khi gọi hàm.

Chúng tôi lưu trữ giá trị trả về của hàm trong biến tổng , và sau đó chúng tôi in ra.Hoạt động của hàm C ++ với câu lệnh trả về

Chú ý rằng tổng là một biến intkiểu. Điều này là do giá trị trả về của add()là intkiểu.

Nguyên mẫu hàm

Trong C ++, mã khai báo hàm phải ở trước lệnh gọi hàm. Tuy nhiên, nếu chúng ta muốn xác định một hàm sau lời gọi hàm, chúng ta cần sử dụng nguyên mẫu hàm. Ví dụ,

// function prototype
void add(int, int);

int main() {
    // calling the function before declaration.
    add(5, 3);
    return 0;
}

// function definition
void add(int a, int b) {
    cout << (a + b);
}

Trong đoạn mã trên, nguyên mẫu hàm là:

void add(int, int);

Điều này cung cấp cho trình biên dịch thông tin về tên hàm và các tham số của nó. Đó là lý do tại sao chúng ta có thể sử dụng mã để gọi một hàm trước khi hàm đã được xác định.

Cú pháp của một nguyên mẫu hàm là:

returnType functionName(dataType1, dataType2, ...);

Ví dụ 4: Nguyên mẫu hàm C ++

// using function definition after main() function
// function prototype is declared before main()

#include <iostream>

using namespace std;

// function prototype
int add(int, int);

int main() {
    int sum;

    // calling the function and storing
    // the returned value in sum
    sum = add(100, 78);

    cout << "100 + 78 = " << sum << endl;

    return 0;
}

// function definition
int add(int a, int b) {
    return (a + b);
}

Đầu ra

100 + 78 = 178

Chương trình trên gần giống với Ví dụ 3 . Sự khác biệt duy nhất là ở đây, hàm được định nghĩa sau khi gọi hàm.

Đó là lý do tại sao chúng tôi đã sử dụng một nguyên mẫu hàm trong ví dụ này.

Lợi ích của việc sử dụng các chức năng do người dùng xác định

  • Functions make the code reusable. We can declare them once and use them multiple times.
  • Functions make the program easier as each small task is divided into a function.
  • Functions increase readability.

Các chức năng của thư viện C ++

Các hàm thư viện là các hàm có sẵn trong lập trình C ++.

Người lập trình có thể sử dụng các hàm thư viện bằng cách gọi các hàm trực tiếp; họ không cần phải tự viết các hàm.

Một số chức năng thư viện phổ biến trong C ++ là sqrt()abs()isdigit()vv

Để sử dụng các hàm thư viện, chúng ta thường cần bao gồm tệp tiêu đề trong đó các hàm thư viện này được định nghĩa.

Ví dụ, để sử dụng các hàm toán học như sqrt()và abs(), chúng ta cần bao gồm tệp tiêu đề cmath.

Ví dụ 5: Chương trình C ++ để tìm căn bậc hai của một số

#include <iostream>
#include <cmath>
using namespace std;

int main() {
    double number, squareRoot;
    
    number = 25.0;

    // sqrt() is a library function to calculate the square root
    squareRoot = sqrt(number);

    cout << "Square root of " << number << " = " << squareRoot;

    return 0;
}

Đầu ra

Square root of 25 = 5

Trong chương trình này, sqrt()hàm thư viện được sử dụng để tính căn bậc hai của một số.

Khai báo hàm của sqrt()được định nghĩa trong cmathtệp tiêu đề. Đó là lý do tại sao chúng ta cần sử dụng mã #include <cmath>để sử dụng sqrt()hàm.

Để tìm hiểu thêm, hãy truy cập các hàm Thư viện chuẩn C ++ .









Gõ tìm kiếm nhanh...