Fonction avec arguments par défaut
Résolu
A voir également:
- Fonction avec arguments par défaut
- Fonction si et - Guide
- Ouvrir avec par défaut - Guide
- Google page d'accueil par défaut - Guide
- Dns par defaut - Guide
- Windows 11 clic droit afficher plus d'options par défaut - Guide
1 réponse
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
Avant ça compilait car j'avais désactivé ~fpermissive, ce qui avait pour conséquence de tolérer cet erreur.
Merci