Articles of classe

Accesseurs vs membres du public

J’ai une classe avec beaucoup de membres de type intégrés avec un access en lecture / écriture. Devrais-je en faire des membres publics et fournir des méthodes get / set pour chacun? Qu’en est-il des structures?

Conversion Infix en Postfix c ++

J’essaie de convertir d’infix en postfix, puis d’évaluer l’expression de postfix pour obtenir la réponse finale. J’ai un grave problème cependant, car pour une raison quelconque, la conversion ne fonctionne pas du tout. Par exemple, lorsque je saisis la première expression infixe: 24 + 33 * (7 – 5) + 8/3, il génère 24 33 […]

Appelez la fonction membre

Je ne sais pas comment appeler une fonction de membre de classe de main. Je souhaite appeler “printPoly” avec un object poly en tant que paramètre implicite. Voici la définition de la classe: class poly { private: Node *start; public: poly(Node *head) /*constructor function*/ { start = head; } void printPoly(); //->Poly *polyObj would be […]

Constructeur par défaut des classes C ++

Un peu plus tôt, j’ai demandé pourquoi c’est considéré comme mauvais: class Example { public: Example(void); ~Example(void); void f() {} } int main(void) { Example ex(); // <<<<<< what is it called to call it like this? return(0); } Je comprends maintenant que la création d’un prototype de fonction renvoie un type Example. Je ne […]

Comment obtenir une liste des variables membres d’une classe en C ++?

Est-il possible d’obtenir une liste ou de parcourir une liste de chaque variable membre d’une classe, indépendamment de son type? Mon intention est de tous les append à un modèle std :: map. class Person { int Age; char *Name; template std::map List; void MakeList() { for(auto i : Person.memberVariables) { List.emplace(i); } } }; […]

Où stocker les constantes nommées spécifiques à une classe en C ++

Si vous avez une classe qui a des constantes nommées, quelle est la meilleure pratique pour stocker les constantes: Option 1: en-tête de l’espace de noms dans la classe Donc dans mon en-tête de classe j’aurai: class myClass { … … }; namespace NamedConstants { const ssortingng Bucket = “Bucket”; } Option 2 Constantes de […]

Initialiser les membres const à l’aide d’une fonction complexe dans la classe C ++

J’ai un programme qui fonctionne avec des grids 3D. Cette grid a son propre object de classe Grille qui ressemble à ceci (version simplifiée): class Grid { public: Grid() { readDataFromInputFile(); } private: void readDataFromInputFile() {…} // this function reads the values for i, j, k from disk int i; int j; int k; }; […]

à propos de la classe de base virtuelle et de l’inheritance virtuel en C ++

Dupliquer possible: problème d’inheritance virtuel gcc c ++ Bonjour à tous, Je lis bien Effective C ++ de Scott Myers Books. La classe de base virtuelle et l’inheritance virtuel ont été mentionnés comme suit. Les règles régissant l’initialisation des classes de base virtuelles sont plus compliquées et moins intuitives que celles des bases non virtuelles. […]

Pourquoi est-il judicieux de définir une fonction virtuelle pure?

Scott a déclaré sur Effective C ++, 3e édition, p. 43 que pour faire une classe abstraite, il suffit de lui donner un destructeur virtuel pur: class AWOV { // AWOV = “Abstract w/o Virtuals” public: virtual ~AWOV() = 0; // declare pure virtual destructor }; Ensuite, at-il poursuivi, il existe un problème: nous devons […]

Allocation de mémoire pour la classe en C ++

Ceci est ma classe: using namespace std; Class Book { public: Book(); Book(vector*, ssortingng, int); Book(const Book&); ~Book(); Book& operator=(const Book&); void update(vector*); void update(ssortingng); void update(int); int getYear() const{ return year; }; ssortingng getTitle() const{ return title; }; bool operator==(const Book&); bool operator!=(const Book&); friend std::ostream& operator<<(std::ostream&, const Book&); void getAuthors(); private: vector* authors; […]