Определить несколько функций-членов класса C

#c #class

#c #класс

Вопрос:

 class myclass {
public:
    myclass();
    myclass(int);
    void func();
    ~myclass();
};
  

То, что я сейчас делаю, похоже:

 myclass::myclass() {
    cout << "Default Constructor";
}
myclass::myclass(int a) {
    cout << "Normal Constructor";
}
void myclass::func(){
    cout<< "function f";
}
  

Но каждое определение требует myclass:: , что кажется беспорядочным.

Могу ли я сделать что-то вроде:

 myclass::{
    myclass(){...}
    myclass(int a){...}
    void f(){...}
}
  

Собрать все функции-члены в одном классе и определить их вместе?

Комментарии:

1. Нет, вы не можете. C так не работает.

2. Нет, вы не можете определить их таким образом. Вы можете сделать это только с пространствами имен.

3. Вы можете избежать указания имени класса, определив тела конструктора / метода / деструктора, встроенные в заголовок. Однако, если вы определяете их отдельно, тогда требуется имя класса.

4. Возможно, это просто привычка, но я, честно говоря, не понимаю, почему это беспокоит. Возможно, ваш фактический код выглядит как-то иначе? И это усугубляет необходимость определения функций?

5. Я бы счел ваше предложение более назойливым. Для меня средний класс имеет от 500 до 1 тысячи строк кода.

Ответ №1:

Могу ли я сделать что-то вроде: … Собрать все функции-члены в одном классе и определить их вместе?

Не при определении функций вне определения класса. В этом случае необходимо повторять имя класса для каждой функции-члена.