#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:
Могу ли я сделать что-то вроде: … Собрать все функции-члены в одном классе и определить их вместе?
Не при определении функций вне определения класса. В этом случае необходимо повторять имя класса для каждой функции-члена.