[c++] C++에서의 정규 표현식과 연산자 오버로딩

C++은 풍부한 기능을 제공하는 강력한 프로그래밍 언어입니다. 오늘은 C++에서의 정규 표현식(Regular Expressions)연산자 오버로딩(Operator Overloading)에 대해 알아보겠습니다.

정규 표현식(Regular Expressions)

정규 표현식은 텍스트에서 패턴을 식별하고 추출하기 위해 사용됩니다. C++11부터는 <regex> 헤더를 이용하여 정규 표현식을 지원하고 있습니다. 다음은 간단한 예제 코드입니다.

#include <iostream>
#include <regex>

int main() {
    std::string text = "Hello, World!";

    // 정규 표현식을 이용하여 'Hello'가 있는지 판별
    std::regex pattern("Hello");
    if (std::regex_search(text, pattern)) {
        std::cout << "Pattern found." << std::endl;
    } else {
        std::cout << "Pattern not found." << std::endl;
    }

    return 0;
}

연산자 오버로딩(Operator Overloading)

C++은 사용자 정의 데이터 타입에 대해 연산자를 재정의(오버로딩)할 수 있는 기능을 제공합니다. 다음은 연산자 오버로딩의 예제 코드입니다.

#include <iostream>

class Complex {
private:
    float real;
    float imaginary;
public:
    Complex(float r, float i) : real(r), imaginary(i) {}

    Complex operator+(const Complex& c) {
        return Complex(real + c.real, imaginary + c.imaginary);
    }

    void display() {
        std::cout << real << " + " << imaginary << "i" << std::endl;
    }
};

int main() {
    Complex num1(2.3, 4.5);
    Complex num2(1.2, 3.4);
    Complex result = num1 + num2;
    result.display();

    return 0;
}

결론

이상으로 C++에서의 정규 표현식과 연산자 오버로딩에 대해 알아보았습니다. 정규 표현식을 사용하면 텍스트 처리를 보다 효과적으로 할 수 있고, 연산자 오버로딩을 통해 사용자 정의 클래스에 대한 연산을 지원할 수 있습니다.

더 많은 정보는 C++ Reference에서 확인할 수 있습니다.