예를 들어서
struct A{
int money = 0;
int func(int x, int y = money){ //error
return x+y;
}
};
이런것처럼 A의 함수 func의 디폴트값으로 A의 멤버변수 money를 쓰고싶은데 에러뜨면서 안되네
이렇게는 절대 못하나?
struct A{
int money = 0;
int func(int x, int y = money){ //error
return x+y;
}
};
이런것처럼 A의 함수 func의 디폴트값으로 A의 멤버변수 money를 쓰고싶은데 에러뜨면서 안되네
이렇게는 절대 못하나?
해당 댓글은 삭제되었습니다.
C++이고 있는데 따로 지역변수 money가 없으면 쓰나 안쓰나 동작은 같음
이렇게 하면 내가 y로 어떤 값을 줘도 y가 money로 덮여버리니까 원하는 동작이 아니구
그냥 저 코드는 간단한 예시고 함수 인자로 특정 값을 주고싶을때도 있고, 안주고싶을때도 있는데 그때는 함수 내의 멤버변수를 디폴트로 쓰고싶다는거임 근데 안된다니 뭐
구글링 결과 못하는거 같음 특정값으로 if문 추가 하셈
아님 함수 오버로딩으로 하든지
ㄱㅅㄱㅅ
static으로 선언하셈
생성된 각 객체별로 money를 할거면 오버로딩
template { int money = M; int func(int x, int y = M) { return x + y; } }
뭐야 <> 없어지네
https://pastebin.com/Rza3Z5BP
답변 정성 ㄱㅅ한데 객체에서 money가 중간에 바뀌더라도 그 값을 디폴트로 쓰고싶은거였어서
윗댓이랑 다른 사람인데 걍 인자 하나 더 쓰셈 int func(int x,int y,int z = 0){ if(z) y = money; }
나도 이거 고민해봤는데 이거 찾음 int func(int x) { return func(x, money); } 이것도 오버로딩해서 같이 쓰면 댐