"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > O C++ 11 pode obter propriedades semelhantes ao C # com classes e lambdas sem nome?

O C++ 11 pode obter propriedades semelhantes ao C # com classes e lambdas sem nome?

Publicado em 2024-11-03
Navegar:217

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

C 11: Propriedades Como C#?

A sintaxe C# permite getters e setters de campo concisos. C 11 introduz classes nomeadas e lambdas, oferecendo uma solução semelhante.

Implementando propriedades C# em C 11

Para emular propriedades C# em C 11, você pode empregar classes sem nome e funções de acesso de membros. Considere a seguinte implementação:

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;
};

Exemplo de uso

Foo foo;
foo.alpha = 10;
cout 

Esta abordagem fornece uma sintaxe semelhante a C# para obter e definir propriedades com nomes gerados automaticamente.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3