programacion kichink etiqueta descripcion c++ static-members method-signature static-functions

c++ - kichink - meta title y meta descripcion



Error de funciones del miembro estático; ¿Cómo escribir correctamente la firma? (1)

Me aparece un error al intentar compilar mi código en g ++ usando la firma actual:

cannot declare member function static void Foo::Bar(std::ostream&, const Foo::Node*) to have static linkage

Mi pregunta es doble:

  1. ¿Por qué no compila de esta manera?
  2. ¿Cuál es la firma correcta y por qué?

Las firmas siempre han sido mi muerte al usar C ++

Editar: Aquí está el archivo de encabezado de clase, también:

class Foo { public: Foo(); ~Foo(); bool insert(const Foo2 &v); Foo * find(const Foo2 &v); const Foo * find(const Foo2 &v) const; void output(ostream &s) const; private: //Foo(const Foo &v); //Foo& operator =(const Foo &v); //Not implemented; unneeded struct Node { Foo2 info; Node *left; Node *right; }; Node * root; static bool insert(const Foo2 &v, Node *&p); static void output(ostream &s, const Node *p); static void deleteAll(Node *p);


Supongo que has hecho algo como:

class Foo { static void Bar(); }; ... static void Foo::Bar() { ... }

El " static void Foo::Bar " es incorrecto. No necesitas el segundo " static ".