Есть ли способ избежать повторного создания экземпляров классов для всех методов в файле cpp? - PullRequest
1 голос
/ 28 февраля 2012

Есть ли способ упростить явное выражение класса при реализации методов в файле cpp, который ранее был заключен в файле h?

Что-то вроде ...

MyClass:: {
void my_method() { implementation };
void my_other() { implementation };
}

Ответы [ 3 ]

1 голос
/ 28 февраля 2012

Нет, но хорошая IDE предложит некоторые возможности рефакторинга для облегчения набора текста. Для Visual Studio VisualAssist - хороший плагин (никак не связанный).

При желании вы можете создать свой собственный макрос, например:

// This is very ungly, probably best avoided
#define lessTyping(method) MyClass::##method()

lessTyping(my_method)
{
}

Но это действительно повредит читабельности.

0 голосов
/ 28 февраля 2012

Нет, единственный способ избежать их - использовать встроенное объявление непосредственно в заголовочном файле, как в

class MyClass
{
  void my_method() { implementation };
  ...
}
0 голосов
/ 28 февраля 2012

Нет.

Стандарт C ++ 11 §9.3 [class.mfct] p5:

Если определение функции-члена лексически выходит за пределы определения класса, имя функции-члена должно быть квалифицированнымпо имени класса с помощью оператора ::.

...