Tác dụng của từ const trong khai báo hàm

Cho mình hỏi về tác dụng của const trong các khai báo hàm sau:

const int func(int value);

int func(const int value);

int func(int value) const;

int func(int const value);
1 Like

int func(int value) const;
có nghĩa là các tham số đưa vào hàm func ở dạng tham biến hay tham chiếu thì đều k được thay đổi giá trị của các biến đó, chỉ được đọc giá trị, cái này thường dùng khi tham số vào hàm là tham biến hoặc tham chiếu, còn tham trị như ví dụ bạn viết trên thì k cần, vì tham trị thực chất là nó tạo ra 1 biến mới lưu giữ giá trị của biến đưa vào hàm phục vụ cho riêng hàm đó, dùng xong hàm biến đó sẽ tự được dọn dẹp ( có thể dùng ở trường hợp truyền vào 1 sô và chỉ muốn hàm đó dùng giá trị đó, k được thay giá trị (phạm vị hàm))

int func(const int value); tương đương int func(int const value);
thì khác hơn cái trên 1 chút, nãy viết int func(int value1, int value2) const; thì có nghĩa tất cả các tham số đầu vào đều k được thay đổi, còn viết int func(const int value1, int value2); thì chỉ mỗi value1 k được thay đổi, còn value 2 có thể thay đổi , cũng như trên, cái này chỉ dùng khi tham sô vào hàm là tham chiếu hoặc tham biến, tham trị k cần dùng ( có thể dùng ở trường hợp truyền vào 1 sô và chỉ muốn hàm đó dùng giá trị đó, k được thay giá trị (phạm vị hàm))

Là biến hằng (không thể thay đổi đó mà)

@hell6w9rld 1: sai nhé

Giá trị trả về của hàm phải là const

2 thằng này là 1, value sẽ không thể thay đổi giá trị trong hàm, bát kể là tham biến hay tham trị, thường dùng cho setValue(const int value)

Thằng này chỉ dùng trong class, struct, các biến của nó không được phép thay đổi trong function đó.
VD:

class MyClass
{
    int id;
    int getId() const
    {
        this->id = 1; // báo lỗi
        return this->id;
    }
};

như trên thì m chỉ sai mỗi cái đầu
const int func(int value);
nhỉ

int func(int value) const;

Bạn hiểu sai thằng này

Còn thằng

const int func(int value);

thì những phiên bản gần đây của C++ không khuyến khích sử dụng.

int func(int value) const;
có nghĩa là các tham số đưa vào hàm func ở dạng tham biến hay tham chiếu, tham trị thì đều k được thay đổi giá trị của các biến đó, chỉ được đọc giá trị, cái này thường dùng khi tham số vào hàm là tham biến hoặc tham chiếu, còn tham trị như ví dụ bạn viết trên thì k cần, vì tham trị thực chất là nó tạo ra 1 biến mới lưu giữ giá trị của biến đưa vào hàm phục vụ cho riêng hàm đó, dùng xong hàm biến đó sẽ tự được dọn dẹp ( có thể dùng ở trường hợp truyền vào 1 sô và chỉ muốn hàm đó dùng giá trị đó, k được thay giá trị (phạm vị hàm))

kiểu viết trên qua c++ học m mới thầy, có nghĩa là mở rộng của c++ so với c.

Bạn vào link này, tất cả code lỗi đều ở đây:

// int func() const {} chỉ dùng cho OOP

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?