Ví dụ về hàm Const trong C++

Vi Du Ve Ham Const Trong C



Bài viết này tập trung vào từ khóa “const” được sử dụng với hàm trong C++. Từ khóa “const” được gọi là giá trị không đổi mà chúng ta không thể sửa đổi trong quá trình thực thi chương trình. Hàm “const” trong C++ là những hàm có thành viên dữ liệu bị hạn chế thay đổi trong lớp của chúng. Các hàm “tiếp” được sử dụng hiệu quả vì chúng có thể tránh được những sửa đổi không mong muốn đối với giá trị của đối tượng.

Ví dụ 1: Chương trình hàm thành viên Const trong C++

Ở đây, chúng ta có một chương trình đơn giản về hàm thành viên const:

#include
sử dụng không gian tên tiêu chuẩn ;
lớp học Lớp học của tôi {
int trên một ;
công cộng :
Lớp học của tôi ( int N = 0 ) {
trên một = N ;
}
int nhận được giá trị ( ) hằng số {
trở lại trên một ;
}
} ;
int chủ yếu ( ) {
hằng số MyClass c ( 30 ) ;
MyClass c1 ( 5 ) ;
cout << 'Số sử dụng đối tượng c :' << c. nhận được giá trị ( ) ;
cout << ' \N Số sử dụng đối tượng c1 : ' << c1. nhận được giá trị ( ) ;
trở lại 0 ;
}

Ban đầu, chúng tôi xác định tệp tiêu đề cho phép luồng đầu vào/đầu ra của chương trình. Sau đó, chúng ta thiết lập lớp “MyClass” trong đó chúng ta khai báo biến “num” và các hàm thành viên của hàm MyClass() và hàm getVal(). Bên trong hàm MyClass(), chúng ta đặt tham số “n” với giá trị là “0”. Sau đó, đối số “n” được gán cho biến “num”. Tiếp theo, chúng ta gọi hàm getVal() bằng từ khóa “const”, cho biết rằng trạng thái hiện tại của đối tượng không thể được sửa đổi khi gọi hàm. Hàm getVal() trả về biến thành viên “num”.







Cuối cùng, chúng ta tiếp cận với hàm main(). Ở đây, chúng tôi xác định các đối tượng “c” và “c1” của hàm MyClass() và cũng chuyển các giá trị cho các đối tượng này. Đối tượng “c” được đặt bằng từ khóa “const”, cho biết rằng giá trị được gán cho đối tượng này không thể sửa đổi được.



Đầu ra của hàm thành viên const được đối tượng gọi được hiển thị như sau. Bằng cách này, chúng ta có thể sử dụng từ khóa “const” với hàm thành viên và đối tượng:







Ví dụ 2: Chương trình hàm thành viên Const bên ngoài lớp trong C++

Bây giờ, chúng ta có một cách triển khai khác trong đó hàm thành viên const được xác định bên ngoài định nghĩa lớp, đồng thời đặt và truy xuất giá trị biến thành viên riêng bằng cách sử dụng hàm thành viên const.

#include
sử dụng không gian tên tiêu chuẩn ;

lớp học Lớp mới {
int Tôi ;

công cộng :
trống rỗng set_record ( int ) ;

int get_record ( ) hằng số ;
} ;

trống rỗng Lớp mới :: set_record ( int x ) { Tôi = x ; }
int Lớp mới :: get_record ( ) hằng số { trở lại Tôi ; }

int chủ yếu ( )
{
Lớp c mới ;
c. set_record ( 10 ) ;
cout << c. get_record ( ) ;

trở lại 0 ;
}

Ở đây, trước tiên chúng ta thiết lập một lớp, “NewClass”, nơi chúng ta khởi tạo biến “i” được giữ riêng tư. Sau đó, chúng ta có một từ khóa public trong đó các hàm thành viên set_record() và get_record() được xác định. Hàm thành viên set_record() được sử dụng để đặt giá trị của biến “i” và hàm get_record() được sử dụng ở đây để trả về giá trị của biến “i”. Lưu ý rằng chúng tôi sử dụng từ khóa “const” với hàm thành viên get_record() đại diện cho nó dưới dạng hàm thành viên const và không thể sửa đổi trạng thái đối tượng. Sau đó, chúng ta có định nghĩa hàm set_record() để đặt giá trị biến “i”.



Tương tự, chúng ta có định nghĩa hàm get_record() để lấy giá trị biến “i”. Sau đó, chúng ta thiết lập hàm main() trong đó chúng ta khai báo đối tượng “c” của lớp “NewClass”. Sau đó, hàm “set_record”, một hàm không phải thành viên hằng, được gọi để gán giá trị cho biến “z”. Tiếp tục, chúng ta gọi hàm thành viên get_record() const để in giá trị của “i”.

Giá trị của biến thành viên riêng tư được gọi bởi hàm thành viên const và được hiển thị trong dấu nhắc sau:

Ví dụ 3: Chương trình của hàm thành viên Const được xác định bên ngoài lớp dưới dạng hàm độc lập

Tuy nhiên, chúng tôi triển khai một trường hợp khác của hàm thành viên const trong đó hàm thành viên có từ khóa “const” được gọi bên ngoài lớp dưới dạng hàm độc lập.

#include
sử dụng không gian tên tiêu chuẩn ;
lớp học phương trình {
int n1,n2 ;
công cộng :
trống rỗng tập_phương trình ( int x, int )
{
n1 = x ;
n2 = ;
}
trống rỗng show_phương trình ( )
{
cout << 'Phương trình là:' << n1 << '+' << n2 << 'b' << kết thúc ;
}
người bạn trống rỗng Nó vui ( hằng số phương trình ) ;
} ;
trống rỗng Nó vui ( hằng số phương trình đối tượng )
{
cout << 'Hàm sử dụng phương trình là:' << obj. n1 << '+' << obj. n2 << 'b' << kết thúc ;
}
int chủ yếu ( )
{
phương trình đối tượng ;
obj. tập_phương trình ( 5 , số 8 ) ;
obj. show_phương trình ( ) ;
Nó vui ( vật thể ) ;
}

Ở đây, chúng ta tạo lớp “Equation()” và sau đó khai báo các biến “n1” và “n2”. Ở đây, chúng ta cũng thêm hàm thành viên set_Equation() để đặt giá trị của biến “n1” và “n2”. Hàm show_Equation() hiển thị phương trình được tạo bằng các biến này.

Sau đó, chúng ta có một khai báo hàm funIs() được xác định bằng từ khóa “friend”. Từ khóa “bạn bè” này cho phép chúng ta truy cập vào thành viên riêng tư của lớp “Phương trình”. Tiếp theo, chúng ta gọi hàm bạn bè “funIs()” bên ngoài lớp và nhập tham số “obj” của lớp “Phương trình” dưới dạng const. Cuối cùng, chúng ta có hàm main() nơi chúng ta khai báo đối tượng của lớp “Phương trình”. Sau đó, chúng ta đặt giá trị của biến “n1” và “n2” bằng hàm set_Equation(). Các biến “n1” và “n2” được sử dụng để hiển thị giá trị của chúng bằng hàm show_Equation(). Cuối cùng, chúng ta gọi hàm bạn “funIs” của lớp “Equation” để hiển thị phương trình.

Phương trình và phương trình sử dụng hàm constfriend được hiển thị trên dấu nhắc:

Ví dụ 4: Chương trình hàm thành viên Const để cập nhật giá trị trong C++ (Trường hợp xấu nhất)

Chương trình thể hiện tình huống xấu nhất của hàm thành viên const khi chúng ta cố gắng sửa đổi giá trị của biến có tên “bên trong hàm thành viên const”.

#include
sử dụng không gian tên tiêu chuẩn ;

lớp học Dữ liệu {
int TRONG ;

công cộng :
trống rỗng đặt giá trị ( int Tôi ) { TRONG = Tôi ; }
int nhận được giá trị ( ) hằng số
{

++ TRONG ;
trở lại TRONG ;
}

} ;

int chủ yếu ( )
{
Dữ liệu d ;
d. đặt giá trị ( hai mươi ) ;
cout << kết thúc << d. nhận được giá trị ( ) ;

trở lại 0 ;
}

Ở đây, trước tiên chúng ta xây dựng lớp “Dữ liệu” và khai báo biến “v” trong lớp. Sau đó, chúng ta đặt từ khóa “public” và sau đó khai báo các hàm thành viên của lớp “setValue()” đại diện cho hàm tạo của lớp và getValue() cho biết hàm thành viên getter của lớp. Hàm setValue() lấy biến “i” làm tham số. Biến “i” này được gán cho biến thành viên “v”.

Sau đó, chúng ta có định nghĩa hàm getValue() nơi chúng ta truy xuất giá trị của biến “v”. Vì hàm getValue() được khai báo bằng từ khóa “const”, thể hiện rằng giá trị của biến “v” không thể được cập nhật trong mọi trường hợp. Tuy nhiên, chúng tôi cố tình tăng biến “v” để thay đổi giá trị của nó. Khi chương trình đạt đến giai đoạn này, một lỗi sẽ được đưa ra. Cuối cùng, chúng ta có lệnh gọi hàm main() trong đó chúng ta xác định đối tượng “d” của lớp “Data” và đặt giá trị “20” cho đối tượng “d” này. Sau đó, chúng ta gọi hàm getValue() để lấy giá trị “d” của đối tượng.

Lời nhắc tạo ra kết quả của quá trình triển khai trước đó, trong đó nó báo lỗi “++v” vì chúng ta không được phép sửa đổi giá trị của các đối tượng hàm thành viên const:

Phần kết luận

Để kết luận, chúng ta đi sâu vào hàm const của C++ được sử dụng để tránh những thay đổi ngẫu nhiên về giá trị của chương trình. Các hàm thành viên const trong C++ là các hàm chỉ đọc và không được phép sửa đổi các đối tượng mà nó được gọi. Chúng tôi cũng đã triển khai nhiều kịch bản khác nhau của hàm const để thể hiện chức năng của nó trong C++.