"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > C++11은 명명되지 않은 클래스와 람다를 사용하여 C#과 유사한 속성을 달성할 수 있습니까?

C++11은 명명되지 않은 클래스와 람다를 사용하여 C#과 유사한 속성을 달성할 수 있습니까?

2024-11-03에 게시됨
검색:658

 Can C  11 Achieve C#-Like Properties with Unnamed Classes and Lambdas?

C 11: 속성 C#과 마찬가지로?

C# 구문을 사용하면 간결한 필드 getter 및 setter를 사용할 수 있습니다. C 11에서는 명명된 클래스와 람다를 도입하여 유사한 솔루션을 제공합니다.

C 11에서 C# 속성 구현

C 11에서 C# 속성을 에뮬레이트하려면 명명되지 않은 클래스를 사용할 수 있습니다. 및 회원 액세스 기능. 다음 구현을 고려하십시오.

struct Foo {
    struct {
        int value;
        auto &operator=(const int &i) -> decltype(auto) { return value = i; }
        auto operator()() const -> decltype(auto) { return value; }
    } alpha;

    struct {
        float value;
        auto &operator=(const float &f) -> decltype(auto) { return value = f; }
        auto operator()() const -> decltype(auto) { return value; }
    } bravo;
};

사용 예

Foo foo;
foo.alpha = 10;
cout 

이 접근 방식은 자동 생성된 이름으로 속성을 가져오고 설정하기 위한 C#과 유사한 구문을 제공합니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3