Função estática de sobrecarga C ++ com função não estática
Gostaria de imprimir duas coisas diferentes, dependendo se uma função é chamada estaticamente comFoo::print()
ou de uma instância deFoo foo; foo.print();
EDIT: Aqui está uma definição de classe que definitivamente não funciona, como já foi respondido por algumas pessoa
class Foo {
string bla;
Foo() { bla = "nonstatic"; }
void print() { cout << bla << endl; }
static void print() { cout << "static" << endl; }
};
No entanto, existe uma boa maneira de conseguir esse efeito? Basicamente, eu gostaria de fazer:
if(this is a static call)
do one thing
else
do another thing
Phrased de outra maneira, eu sei que o PHP pode verificar se o*this
variável @ é definida ou não para determinar se a função é chamada estaticamente. C ++ tem a mesma capacidade?