над

ел бы напечатать две разные вещи в зависимости от того, вызывается ли функция статически сFoo::print() или из экземпляраFoo foo; foo.print();

РЕДАКТИРОВАТЬ: Вот определение класса, которое определенно не работает, как уже отвечали несколько человек.

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&nbsp;переменная определяется или нет, чтобы определить, вызывается ли функция статически. Есть ли у C ++ такая же возможность?