Присвоить параметру функции класса значение по умолчанию
Есть объект класса A, в нем есть переменная a со значением ноль. Возможно ли присвоить это значение параметру функции func по умолчанию? Примерный вариант:
struct A{
int a = 0;
int func(int a = a){
return a;
}
};
Ответы (2 шт):
Автор решения: timur
→ Ссылка
Нет, так нельзя делать. Только если так:
struct A {
int a = 0;
int func() {
return func(a);
}
int func(int a) {
return a;
}
};
Автор решения: dIm0n
→ Ссылка
Вот так вот:
#include <iostream>
struct A {
static constexpr int a = 0;
int func(int a = a) {
return a;
}
};
int main() {
std::cout << A{}.func() << '\n';
}