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.
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