Как группировать пользователей на основе приложения в Azure B2C

Нет, это запрещено стандартом:

ISO 14882: 2003 C ++ Standard 13.1 / 2 - Перегружаемые объявления

Некоторые объявления функций не могут быть перегружены:

  • Объявления функций, которые отличаются только возвращаемым типом, не могут быть перегружены.
  • Объявления функций-членов с тем же именем и теми же типами параметров не могут быть перегружены, если какой-либо из них является static Объявление функции участника (9.4).

...

[Пример:

class X {
    static void f();
    void f();                // ill-formed
    void f() const;          // ill-formed
    void f() const volatile; // ill-formed
    void g();
    void g() const;          // OK: no static g
    void g() const volatile; // OK: no static g
};

-End example]

...

Кроме того, это было бы неоднозначно, так как можно вызвать статические функции для экземпляров:

ISO 14882: 2003 C ++ Standard 9.4 / 2 - Статические элементы

Статический член s класса X может ссылаться на использование qualified-id выражение X::s; нет необходимости использовать синтаксис доступа к члену класса (5.2.5) для ссылки на static member. Член static может ссылаться на использование синтаксиса доступа к члену класса, и в этом случае оценивается object-expression. [Пример:

class process {
public:
        static void reschedule();
}
process& g();
void f()
{
        process::reschedule(); // OK: no object necessary
        g().reschedule();      // g() is called
}

-end example]

...

Таким образом, была бы двусмысленность с тем, что у вас есть:

class Foo
{
public:
    string bla;
    Foo() { bla = "nonstatic"; }
    void print() { cout << bla << endl; }
    static void print() { cout << "static" << endl; }
};

int main()
{
    Foo f;
    // Call the static or non-static member function?
    // C++ standard 9.4/2 says that static member
    // functions are callable via this syntax. But
    // since there's also a non-static function named
    // "print()", it is ambiguous.
    f.print();
}

Чтобы решить вопрос о том, можно ли проверить, какой экземпляр вызывает функцию-член , есть ключевое слово this. Ключевое слово this указывает на объект, для которого была вызвана функция. Однако ключевое слово this всегда будет указывать на объект, т. Е. Он никогда не будет NULL. Поэтому невозможно проверить, вызвана ли функция статически или нет à la PHP.

ISO 14882: 2003 C ++ Standard 9.3.2 / 1 - Этот указатель

В теле нестатической (9.3) функции-члена ключевое слово this является выражением не-lvalue, значение которого является адресом объекта, для которого вызывается функция.

0
задан srini 18 March 2019 в 16:56
поделиться

0 ответов