C 11: C#과 같은 속성?
C# 구문을 사용하면 간결한 필드 getter 및 setter를 사용할 수 있습니다. C 11에서는 유사한 솔루션을 제공하는 명명된 클래스와 람다를 도입합니다.
C 11에서 C# 속성 구현
C 11에서 C# 속성을 에뮬레이트하려면 명명되지 않은 클래스를 사용할 수 있습니다. 및 회원 액세스 기능. 다음 구현을 고려하십시오.
<code class="cpp">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; };</code>
사용 예
<code class="cpp">Foo foo; foo.alpha = 10; cout << foo.alpha() << endl;</code>
이 접근 방식은 자동 생성된 이름으로 속성을 가져오고 설정하기 위한 C#과 유사한 구문을 제공합니다.
위 내용은 C 11은 명명되지 않은 클래스 및 람다를 사용하여 C#과 유사한 속성을 달성할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!