class X {
X(int, int); //constructor
void func();
}
class Y {
public int func() {
X x(5,7);
// some other random operations.
x.func();
}
}
이제 조건부를 기반으로 x를 초기화해야한다면 어떻게해야합니까? unaesthetic 방식으로 위의 작업을 수행하는조건부로 객체를 초기화하는 방법
class Z {
// only refer to x when mycond is true.
public int func(boolean mycond) {
if(mycond)
X x(5,7);
//same random operations;
if(mycond)
x.func();
}
}
한 가지 방법은 다음과 같습니다
class Z {
// only refer to x when mycond is true.
public int func(boolean mycond) {
if(mycond) {
X x(5,7);
//same random operations;
x.func();
}
else {
//same random operations
}
}
}
가 나는 코드를 반복하지 않아도 더 간단하게 뭔가를 찾고 있어요.
"임의 연산"후에 조건부에'x'를 선언/초기화 할 수없는 이유가 있습니까? – Mankarse
정말 필요한가요? 이러한 * "임의 연산"*은 어떤 식 으로든 "x"에 의존합니까? 그렇다면, 아마도 거기에 당신이 제거하는 것이 좋을지도 모르는 부작용이있을 것입니다. 어쩌면 무작위로 수행 한 작업의 예를 들거나 전체적인 목표를 설명 할 수 있습니다. –
당신은'boost :: optional'을 볼 수 있습니다. –