C ++ Función estática de sobrecarga con función no estática
Me gustaría imprimir dos cosas diferentes dependiendo de si una función se llama estáticamente conFoo::print()
o de una instancia deFoo foo; foo.print();
EDIT: Aquí hay una definición de clase que definitivamente no funciona, como ya han respondido algunas personas.
class Foo {
string bla;
Foo() { bla = "nonstatic"; }
void print() { cout << bla << endl; }
static void print() { cout << "static" << endl; }
};
Sin embargo, ¿hay una buena manera de lograr este efecto? Básicamente, me gustaría hacer:
if(this is a static call)
do one thing
else
do another thing
Fraseado de otra manera, sé que PHP puede verificar si la*this
variable se define o no para determinar si la función se llama estáticamente. ¿C ++ tiene la misma capacidad?