Computer >> Máy Tính >  >> Lập trình >> C ++

Các toán tử chuyển đổi hoạt động như thế nào trong C ++?

Trong bài này, chúng ta sẽ xem toán tử chuyển đổi trong C ++ là gì. C ++ hỗ trợ thiết kế hướng đối tượng. Vì vậy, chúng ta có thể tạo các lớp của một số đối tượng trong thế giới thực dưới dạng các kiểu cụ thể.

Đôi khi chúng ta cần chuyển đổi một số đối tượng kiểu cụ thể sang một số đối tượng kiểu khác hoặc một số kiểu dữ liệu nguyên thủy. Để thực hiện chuyển đổi này, chúng ta có thể sử dụng toán tử chuyển đổi. Điều này được tạo giống như hàm nạp chồng toán tử trong lớp.

Trong ví dụ này, chúng ta đang lấy một lớp cho các số phức. Nó có hai đối số là thực và ảo. Khi chúng ta gán đối tượng của lớp này thành một số dữ liệu kiểu kép, nó sẽ chuyển đổi thành độ lớn của nó bằng cách sử dụng toán tử chuyển đổi.

Mã mẫu:

#include <iostream>
#include <cmath>
using namespace std;
class My_Complex {
   private:
      double real, imag;
   public:
      My_Complex(double re = 0.0, double img = 0.0) : real(re), imag(img)    //default constructor {}
      double mag() {       //normal function to get magnitude
         return getMagnitude();
      }
      operator double () { //Conversion operator to gen magnitude
         return getMagnitude();
      }
      private:
         double getMagnitude() { //Find magnitude of complex object
            return sqrt(real * real + imag * imag);
         }
   };
   int main() {
      My_Complex complex(10.0, 6.0);
      cout << "Magnitude using normal function: " << complex.mag() << endl;
      cout << "Magnitude using conversion operator: " << complex << endl;
}

Đầu ra

Magnitude using normal function: 11.6619
Magnitude using conversion operator: 11.6619