Maison >développement back-end >C++ >Quelle est la différence entre les esperluettes simples et doubles dans les déclarations de fonctions membres C ?
Interprétation approfondie de l'esperluette dans les déclarations de fonctions membres
En C , les fonctions membres non statiques peuvent être décorées avec des qualificatifs ref . Ces qualificatifs spécifient la catégorie de référence du paramètre d'objet implicite qui est transmis à la fonction.
Explorons les deux qualificatifs de référence courants :
Sans spécifier de qualificatif de référence, la fonction peut être invoquée quelle que soit la catégorie de valeur de l'objet.
Pour illustrer la différence :
struct Foo { void bar() {} // Default: can be invoked with both lvalues and rvalues void bar1() & {} // Can only be invoked with lvalues void bar2() && {} // Can only be invoked with rvalues };
Dans ce qui précède exemple :
Voici une démonstration en direct :
int main() { Foo f; f.bar(); f.bar1(); Foo().bar2(); // Error: bar2 requires an rvalue }
Comprendre ces qualificatifs ref vous permet de contrôler l'accès à vos fonctions membres en fonction de la catégorie de référence de l'objet dont elles sont étant invoqué le.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!