[c++] 네임스페이스와 객체 지향 프로그래밍

이번에는 C++ 프로그래밍 언어의 네임스페이스와 객체 지향 프로그래밍에 대해 알아보겠습니다.

네임스페이스란?

네임스페이스는 C++에서 심볼의 유효 범위를 제한하는 데 사용됩니다. 변수, 함수, 클래스 등과 같은 이름이 충돌하는 것을 방지하고 코드의 가독성을 높이는데 도움이 됩니다.

아래는 예제 코드입니다.

namespace CompanyA {
    void printInfo() {
        std::cout << "This is CompanyA" << std::endl;  
    }
}

namespace CompanyB {
    void printInfo() {
        std::cout << "This is CompanyB" << std::endl;  
    }
}

int main() {
    CompanyA::printInfo();
    CompanyB::printInfo();
    return 0;
}

위의 코드에서 CompanyACompanyB는 서로 다른 네임스페이스에 속해 있는 printInfo 함수를 가지고 있습니다.

객체 지향 프로그래밍과 네임스페이스

객체 지향 프로그래밍에서 클래스와 객체는 네임스페이스를 이용하여 구조화됩니다. 각 클래스는 네임스페이스 내에 정의되어 있고, 클래스 내의 멤버 함수와 변수들은 해당 클래스의 네임스페이스 내에서 유효합니다.

namespace Math {
    class Circle {
    public:
        Circle(float r) : radius(r) {}
        float getArea() {
            return 3.14f * radius * radius;
        }
    private:
        float radius;
    };
}

int main() {
    Math::Circle c1(5.0);
    std::cout << "Circle Area: " << c1.getArea() << std::endl;
    return 0;
}

Math 네임스페이스 내에 정의된 Circle 클래스를 이용하여 반지름과 넓이를 계산할 수 있습니다.

C++의 네임스페이스는 프로그래밍을 더 모듈화하고, 코드의 유지보수성을 높이며, 코드의 가독성을 개선하는데 도움을 줍니다.

이상으로 C++의 네임스페이스와 객체 지향 프로그래밍에 대해 알아봤습니다. 감사합니다.