// This file is part of the Herezh++ application. // // The finite element software Herezh++ is dedicated to the field // of mechanics for large transformations of solid structures. // It is developed by Gérard Rio (APP: IDDN.FR.010.0106078.000.R.P.2006.035.20600) // INSTITUT DE RECHERCHE DUPUY DE LÔME (IRDL) . // // Herezh++ is distributed under GPL 3 license ou ultérieure. // // Copyright (C) 1997-2022 Université Bretagne Sud (France) // AUTHOR : Gérard Rio // E-MAIL : gerardrio56@free.fr // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, // or (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty // of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. // See the GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // For more information, please consult: . /************************************************************************ * DATE: 23/01/97 * * $ * * AUTEUR: G RIO (mailto:gerardrio56@free.fr) * * $ * * PROJET: Herezh++ * * $ * ************************************************************************ * BUT: création d'un type simple, équivalent au type entier, * * mais permettant des vérifications de type plus précise, * * ceci pour les numéros d'assemblage. * * $ * * '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' * ************************************************************************/ #ifndef NB_ASSEMB_H #define NB_ASSEMB_H #include #include #include "Sortie.h" #include #include // //------------------------------------------------------------------ //! Nb_assemb: description des numéros d'assemblage //------------------------------------------------------------------ /// \author Gérard Rio /// \version 1.0 /// \date 23/01/97 // description des numéros d'assemblage class Nb_assemb { public : // surcharge de l'operator de lecture avec le type friend istream & operator >> (istream & ent, Nb_assemb & a) { // lecture du type et vérification std::string nomtype; ent >> nomtype; if (nomtype != "num_assemb") { Sortie(1); return ent; } // lecture de la donnée ent >> a.n ; return ent; }; // surcharge de l'operator d'ecriture friend ostream & operator << (ostream & sort, const Nb_assemb & a) { // écriture du type et de la donnée sort << "num_assemb " << a.n << " "; return sort; }; // constructeurs Nb_assemb(int nn = 0): n(nn) {}; // par défaut Nb_assemb(const Nb_assemb& a) : n(a.n) {}; // de copie // surcharge de l'opérateur d'affectation Nb_assemb& operator= (const Nb_assemb& c) { n = c.n; return (*this);} //Surcharge d'operateur logique bool operator == (const Nb_assemb& a) const { return (a.n == n); }; bool operator != (const Nb_assemb& a) const { return (a.n != n); }; // donnée int n; }; #endif