Я хотел бы напечатать две разные вещи в зависимости от того, называется ли функция статически с помощью Foo::print()
или из экземпляра Foo foo; foo.print();
EDIT: Вот определение класса, которое определенно не работает, как уже было сказано несколькими людьми.
class Foo {
string bla;
Foo() { bla = "nonstatic"; }
void print() { cout << bla << endl; }
static void print() { cout << "static" << endl; }
};
Однако есть ли хороший способ достижения этого эффекта? В принципе, я хотел бы сделать:
if(this is a static call)
do one thing
else
do another thing
С другой стороны, я знаю, что PHP может проверить, определена ли переменная *this
или нет, определить, называется ли эта функция статически. Имеет ли С++ одинаковые возможности?