Fonction avec arguments par défaut
Résolu/Fermé
firstdied
Messages postés
18
Date d'inscription
mardi 28 février 2012
Statut
Membre
Dernière intervention
16 janvier 2013
-
15 janv. 2013 à 17:20
mamiemando Messages postés 33387 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 27 novembre 2024 - 16 janv. 2013 à 20:42
mamiemando Messages postés 33387 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 27 novembre 2024 - 16 janv. 2013 à 20:42
A voir également:
- Fonction avec arguments par défaut
- Fonction si et - Guide
- Windows 11 clic droit afficher plus d'options par défaut - Guide
- Google page d'accueil par défaut - Guide
- Ouvrir avec par défaut - Guide
- Fonction moyenne excel - Guide
1 réponse
mamiemando
Messages postés
33387
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
27 novembre 2024
7 803
Modifié par mamiemando le 16/01/2013 à 20:20
Modifié par mamiemando le 16/01/2013 à 20:20
Chez moi ceci compile sans problème :
... avec :
Autre syntaxe (.hpp + .cpp) :
Résultat :
Peut-être que ton erreur c'est de redonner l'initialisation dans le ".cpp" ? Normalement les valeurs par défaut ne sont données que dans le ".hpp" (plus exactement dans la déclaration) et ne sont pas rappeler dans le ".cpp" (dans l'implémentation).
Bonne chance
class complex_t { private: double real; double imag; public: complex_t(double real0 = 0, double imag0 = 0): real(real0), imag(imag0) {} }; int main() { return 0; }
... avec :
(mando@silk) (~) $ g++ --version g++ (Debian 4.7.2-4) 4.7.2 Copyright (C) 2012 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Autre syntaxe (.hpp + .cpp) :
// complex.hpp #ifndef COMPLEX_HPP #define COMPLEX_HPP #include <ostream> class complex_t { private: double real; double imag; public: complex_t(double real0 = 0, double imag0 = 0); double get_real() const; double get_imag() const; }; inline std::ostream & operator << ( std::ostream & out, const complex_t & c ) { out << c.get_real() << " + " << c.get_imag() << ".i"; } #endif // complex.cpp #include "complex.hpp" complex_t::complex_t(double real0, double imag0): real(real0), imag(imag0) {} double complex_t::get_real() const { return real; } double complex_t::get_imag() const { return imag; } // main.cpp #include <iostream> #include "complex.hpp" int main() { complex_t c1; complex_t c2(4, 5); std::cout << "c1 = " << c1 << std::endl << "c2 = " << c2 << std::endl; return 0; }
Résultat :
(mando@silk) (~) $ g++ -c complex.cpp (mando@silk) (~) $ g++ toto.cpp complex.o (mando@silk) (~) $ ./a.out c1 = 0 + 0.i c2 = 4 + 5.i
Peut-être que ton erreur c'est de redonner l'initialisation dans le ".cpp" ? Normalement les valeurs par défaut ne sont données que dans le ".hpp" (plus exactement dans la déclaration) et ne sont pas rappeler dans le ".cpp" (dans l'implémentation).
Bonne chance
16 janv. 2013 à 20:41
Avant ça compilait car j'avais désactivé ~fpermissive, ce qui avait pour conséquence de tolérer cet erreur.
Merci
16 janv. 2013 à 20:42