Toán tử gọi hàm () trong C++ có thể được nạp chồng cho các đối tượng của kiểu lớp. Khi bạn nạp chồng (), bạn đang không tạo một cách mới để gọi một hàm. Đúng hơn là, bạn đang tạo một hàm toán tử mà có thể được truyền số tham số tùy ý.
#include <iostream>
using namespace std;
class KhoangCach
{
private:
int met;
int centimet;
public:
// phan khai bao cac constructor can thiet
KhoangCach(){
met = 0;
centimet = 0;
}
KhoangCach(int m, int c){
met = m;
centimet = c;
}
// nap chong toan tu goi ham ()
KhoangCach operator()(int x, int y, int z)
{
KhoangCach K;
// bay gio, dat phep tinh bat ky
K.met = x + y + 5;
K.centimet = y - z + 20 ;
return K;
}
// Phuong thuc de hien thi khoang cach
void hienthiKC()
{
cout << "\nDo dai bang m la: " << met << "\nVa do dai bang cm la: " << centimet << endl;
}
};
int main()
{
KhoangCach K1(24, 36), K2;
cout << "Khoang cach dau tien la: ";
K1.hienthiKC();
K2 = K1(15, 15, 15); // trieu hoi toan tu ()
cout << "\n--------------------------\n";
cout << "Khoang cach thu hai la: ";
K2.hienthiKC();
return 0;
}
Biên dịch và chạy chương trình C++ trên sẽ cho kết quả sau:
Hoclaptrinh.vn © 2017
From Coder With
Unpublished comment
Viết câu trả lời