내 C++ 프로그램의 콘솔 I/O를 처리 할 클래스 UI가 있습니다. cin 입력을 얻기 위해 'string input'변수를 사용할 4-5 멤버 함수를 가지며 이러한 함수 중 일부는 재귀 적입니다. 이제 각 함수의 시작 부분에 '문자열 입력'을 선언해야하는지, 아니면 private 멤버 변수가 있고 각 함수의 시작 부분에 input.clear()를 사용하는 것이 더 나은지 궁금합니다. 스타일 p-o-v와 효율성 p-o-v에서 최상의 선택은 무엇입니까?멤버 변수를 사용하거나 함수 내에서 변수를 선언해야합니까?
0
A
답변
3
입력 된 문자열이 장기적으로 개체와 지속적으로 관련되어 있지 않고 단기간에 로컬로만 사용되고있는 경우 로컬 변수로 지정하십시오.
1) 어쨌든 의미심장합니다.
2) 자신을 재귀 적으로 호출하는 경우, 재귀 호출마다 별도의 변수가 필요합니다. 로컬 변수가 자동으로 제공합니다.
3) 효율 관점에서 볼 때 차이가 너무 작아서 알 수 없으며 b) 객체의 멤버 변수를 가리키는 것보다 스택에 새 변수를 만드는 것이 더 빠릅니다 비싸다.
0
dfan에 동의합니다. 또 다른 요점은 멤버 변수로 정의하는 경우 멤버 함수 구현을이 문자열의 소스에 대한 지식으로 분리해야한다는 것입니다. 예를 들어 std :: cin 대신 파일 I/O에서 읽는 것과 같이 나중에 문자열 소스를 변경하면 메서드가 변경되지 않습니다.
관련 문제
- 1. AS3을 사용하여 필요할 때만 전역 또는 함수 내에서 변수를 선언해야합니까?
- 2. 정적 변수를 반환하는 멤버 함수
- 3. C++ - 멤버 함수 내에서 정적 변수를 초기화하는 방법?
- 4. 함수 내에서 $ .post에 변수를 삽입하십시오.
- 5. 함수 내에서 지역 변수를 전달합니다.
- 6. PHP 클래스에서 언제 변수를 선언해야합니까?
- 7. 전역 변수를 사용하거나 java에서 변수를 전달해야합니까?
- 8. Scheme 함수 내에서 변수를 선언하는 방법은 무엇입니까?
- 9. 함수 내에서 매개 변수를 변경하면 호출자도 변경됩니까?
- 10. 함수 내에서 정적 변수를 재설정하는 방법
- 11. 함수 내에서 배열의 변수를 사용하려면 어떻게해야합니까?
- 12. 함수 내에서 변수를 전역 적으로 사용해야합니다.
- 13. system() 함수 내에서 C++ 변수를 사용하는 방법
- 14. 소멸자의 멤버 변수를 무효화해야합니까?
- 15. 이것을 클래스의 const int 멤버 변수로 선언해야합니까?
- 16. JavaScript 함수 내에서 JavaScript 변수를 사용하여 Java 함수 호출
- 17. 멤버 함수 내에서 가상 함수 호출
- 18. 정적 메서드 내에서 클래스의 멤버 변수를 호출하려면 어떻게해야합니까?
- 19. 지정된 클래스의 멤버 변수를 전달합니다.
- 20. 정적 함수 내부에서 멤버 변수를 가져 오거나 설정할 수 있습니까?
- 21. 속성 변수를 직접 액세스하여 멤버 변수에 액세스
- 22. 레일즈 - 자바 스크립트 함수 내에서 Rails 변수를 설정할 수 있습니까?
- 23. php 전역 변수를 함수 범위 내에서 자동으로 사용할 수 있습니까?
- 24. 전역 변수를 사용하여 Javascript에서 같은 함수 내에서 함수를 호출하십시오.
- 25. 함수 호출 내에서 텍스트가있는 PHP 변수를 에코하는 방법은 무엇입니까?
- 26. Javascript에서 함수 내에서 변수를 할당 할 수없는 이유는 무엇입니까?
- 27. pl/sql 함수 내에서 변수를 선언 할 수없는 것 같습니까?
- 28. 함수 내에서 변수를 연속적으로 증가시킬 수없는 이유는 무엇입니까?
- 29. 함수 내에서 변수를 구문 분석 할 수 없습니다.
- 30. 함수 내에서 변수를 선언하는 다양한 방법 - 어떻게 다릅니 까?