중복으로 표시하기 전에이 질문을 읽으십시오.
여기 내가 달성하려고하는 것입니다. 기본적으로 나는 초기 값을 포함하는 문자열을 가지고있다.
모듈화를 위해 프로그램을 여러 클래스로 나눴습니다. (더 좋은 방법을 제안 할 수 있습니다 - 현재 각 파일에는 하나의 클래스가 들어 있습니다)
예를 들어 클래스 1로 데이터를 조작하려면 수정 된 문자열은 class2에 의해 조작되어야합니다.
예 : "Hello World」의
두 번째 클래스> - ->"H @ 리터 @ 오 월드 "
thiid 클래스 ->"# @ 리터 @ 오 월드 "
등 초기 항목에"Hello World "
최고 수준이다 on ...
문제와 단점이있을 때 글로벌 변수가 큰 문제가되지 않는 모든 곳을 읽습니다. 따라서 마음에두고 무엇을 가장 좋은 방법이 될 것입니다 나는 클래스간에 원활하게 공유 할 수 있습니다.
나는 또한 각 함수에 대한 포인터로 문자열을 전달할 생각을했지만 거기에 더 나은 대안이있을 거라 생각 했어. 제발 제안 해주세요.
내 que를 읽고 나를 도와 주셔서 들러 주셔서 감사합니다.C++ 클래스에서 사용할 전역 변수를 구현하는 가장 좋은 방법
답변
정확히 을 알지 못하는데 왜을 대답하고 싶습니까? 대답하기가 어렵습니다. 하지만 난 당신처럼 많은 각 클래스에 대한 참조로 string
전달에 어떤 문제가 있는지 표시되지 않습니다 제안 :
class StringModifier1 {
public:
void operator()(std::string& s) {
// modify s...
}
};
class StringModifier2 {
public:
void operator()(std::string& s) {
// modify s...
}
};
class StringModifier3 {
public:
void operator()(std::string& s) {
// modify s
}
};
int main() {
std::string myString = "hello world";
StringModifier1 modifier1;
StringModifier2 modifier2;
StringModifier3 modifier3;
modifier1(myString);
modifier2(myString);
modifier3(myString);
}
는 경우에 따라 포인터를 저장하는 클래스를 할 수 있습니다 또는 문자열에 대한 참조 :
class StringModifier1 {
private:
std::string& s;
void func1() {
// modify s...
}
void func2() {
// modify s some more...
}
public:
StringModifier1(std::string& s) : s(s) {}
void execute() {
func1();
func2();
}
};
int main() {
std::string myString = "hello world";
StringModifier1 modifier1(myString);
modifier1.execute();
StringModifier2 modifier2(myString);
modifier2.execute();
StringModifier3 modifier3(myString);
modifier3.execute();
}
하나의 클래스가 소유하고 문자열에 대한 액세스를 제공하고 다른 클래스에 소유 클래스에 대한 포인터 또는 참조가 필요할 수 있습니다.
이것은 제가 마지막으로 언급 한 마지막 옵션이었습니다. 다른 좋은 제안이 있습니까? 당신이 que에 대한 나의 마지막 코멘트를 확인하고 그것이 좋은 방법인지 제안 할 수 있습니까? –
@KushanMehta 글쎄, 나는 그것에 대해 잘못된 것을 볼 수 없습니다. 너는 할수 있니? –
클래스를 사용하는 이유는 무엇입니까? 문자열을 취하고 수정 된 문자열을 반환하는 세 가지 함수가 필요합니다. –
- 1. 클래스에서 전역 변수를 사용하는 방법
- 2. C++에서 전역 변수를 사용하는 가장 좋은 방법은 무엇입니까?
- 3. 프로젝트를 구현하는 가장 좋은 방법
- 4. Java - 패키지 전체 또는 전역 변수를 만드는 가장 좋은 방법
- 5. 파생 클래스에서 속성을 구현하는 가장 좋은 방법은 무엇입니까?
- 6. iPhone 응용 프로그램에서 전역 변수를 유지하는 가장 좋은 방법은
- 7. Wordpress - 전역 변수를 정의하는 가장 안전한 방법
- 8. QWizard에서 페이지로 변수를 전파하는 가장 좋은 방법
- 9. Grails 프로젝트에서 전역 변수를 만드는 방법
- 10. Python 팬더에서 Apriori를 구현하는 가장 좋은 방법
- 11. RestKit에서 RKReachabilityObserver를 구현하는 가장 좋은 방법
- 12. Big Graph에서 알고리즘을 구현하는 가장 좋은 방법
- 13. 사진 공유 앱을 구현하는 가장 좋은 방법
- 14. 부분적인 해시를 구현하는 가장 좋은 방법
- 15. 이 예제에서 DRY를 구현하는 가장 좋은 방법
- 16. MVVM에서 임시 오버레이를 구현하는 가장 좋은 방법
- 17. 아파치 스타 빌드에서 Django 전역 변수를 정의하는 가장 좋은 방법은
- 18. ASP.Net 응용 프로그램에서 전역 변수를 사용하는 가장 좋은 방법은 무엇입니까?
- 19. 스프링 통합에서 DynamicPoller를 구현하는 가장 좋은 방법
- 20. QThread 기반 클래스에서 전역 변수를 사용할 수없는 이유는 무엇입니까?
- 21. Runnable을 구현하는 클래스에서 변수를 할당하는 가장 빠른 방법은 무엇입니까?
- 22. 확장 클래스에서 함수를 호출하는 가장 좋은 방법
- 23. 클래스에서 파일을 보관하는 가장 좋은 방법
- 24. C#에서 파일 액세스를 구현하는 가장 좋은 방법
- 25. MPMoviePlayer 제한 시간을 구현하는 가장 좋은 방법
- 26. GWT - 가로형 Navbar를 구현하는 가장 좋은 방법
- 27. 봄에 tomcat에서 트랜잭션을 구현하는 가장 좋은 방법
- 28. 이미지를 구현하는 가장 좋은 방법 Slider
- 29. 메시징 큐를 구현하는 가장 좋은 방법
- 30. 사이트에서 자연어 검색을 구현하는 가장 좋은 방법
전역 변수에 문제가 없습니다. 우리가 게으르지 않도록 격려한다고 생각해보십시오. 한 가지 할 수있는 것은 해당 변수를 기본 클래스에서 보호 된 것으로 두는 것입니다. 그런 다음 다른 모든 클래스는 기본 클래스에서 상속됩니다. 그들은 이제 모두 기본 클래스 변수에 액세스 할 수 있습니다. –
나는 생각했다.하지만 각각의 클래스의 개별 객체가 생성 될 때, 그것들이 모두 기본 클래스의 동일한 데이터를 공유하는 것이 가능할 것이라고 생각했다. –
아 물론. 너무 이른 아침에. 죄송합니다. –