Присвоить параметру функции класса значение по умолчанию

Есть объект класса 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';
}
→ Ссылка