C++ - Вызывание функции в классе с тем же именем как класс

Это можно сделать с помощью следующей команды (в обычном режиме или в escape-режиме):

:tabdo :q

«tabdo», очевидно, выполняет команду для всех открытых вкладок.

16
задан Xymostech 30 June 2009 в 03:43
поделиться

3 ответа

::A("Hello, world.");

должен работать нормально. По сути, он говорит: «Используйте A , найденный в глобальном пространстве имен»

42
ответ дан 30 November 2019 в 15:41
поделиться

Use the scope resolution operator :: to access the name from the global scope:

void A::C() {
  ::A("Hello, world.");
}
5
ответ дан 30 November 2019 в 15:41
поделиться

Я предлагаю вам использовать пространства имен. Поместите ваш класс в другое пространство имен, чем функция.

namespace my_namespace1
{

void A() {}

}

namespace my_namespace2
{

struct A {};

}


int main()
{
    my_namespace1::A();
    my_namespace2::A my_a;    
}

Конечно, реальный вопрос в том, почему у вас есть класс и функция с разными именами? Хорошее простое правило - создавать классы с именем WithABeginningCapitalLetter и функции без One. Тогда у вас никогда не будет этой проблемы. Конечно, STL этого не делает ...

3
ответ дан 30 November 2019 в 15:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: