내가 못본거 같은데? 나는 그것이 어떻게 작동하는지 잘 이해하지 못했습니다. 그게 바로 문제 야. 그러나 나는 도중에 싱글 톤이 필요하지 않습니다. 그래서 정적 멤버로 관리합니다.
알시믹스 :
기본을 모르면 정적 클래스 필드를 제대로 생성하지도 못한다면 어떤 패턴을 이야기할 수 있을까요?
방법을 알면 고칠 수 있습니다. 나는 문서에 따라 어제 썼습니다. 하지만 실수도 많다. 이와 같이:
struct Symbol_Properties
{
staticdatetime gdt_Quote; // Время поступления последней котировкиstaticdouble gda_Price [ 2 ]; // Текущие рыночные цены (0 - Bid, 1- Ask)staticdouble gd_Spread; // Размер спреда в пунктахstaticdouble gd_Swap; // Свопstaticdouble gd_Comission; // Комиссияstaticdouble gd_Pt; // Величина одного пунктаstaticint gi_Digits; // Количество знаков в цене после запятойstaticint gi_StopLevel; // Минимально-допустимый уровень стоп-лосса/тейк-профита в пунктахstaticint gi_FreezLevel; // Уровень заморозки ордеров в пунктах
};
int Symbol_Properties::gdt_Quote = 0 ;
int Symbol_Properties::gda_Price = 0 ;
int Symbol_Properties::gd_Spread = 0 ;
int Symbol_Properties::gd_Swap = 0 ;
int Symbol_Properties::gd_Comission = 0 ;
int Symbol_Properties::gd_Pt = 0 ;
int Symbol_Properties::gi_Digits = 0 ;
int Symbol_Properties::gi_StopLevel = 0 ;
int Symbol_Properties::gi_FreezLevel = 0 ;
나: (당황...사탕이 무슨 상관이야? V가 친구에게 DR에 가거나 아이들을 치료하고 싶어하거나 자신이나 다른 사람을 치료하고 싶어? 아마도 그는 사업을 시작하여 지금 과자를 팔고있을 것입니다. ? 이게 벨로루시에서 마지막 사탕이 되었고 지금은 V 독점이 아닐까? B가 과자를 그리워한다면?... "과자는 왜, 무엇으로 할까?"라는 주제에 대해 다른 많은 생각이 내 머릿속을 스쳐지나갔다. B와의 의사 소통, 내 텔레파시 능력이 실패했습니다. 머리에 아무것도 오지 않았습니다.)
몰라요.
만약을 위해. 대화에 참여하는 모든 사람의 동의 없이 대화를 배치하는 것은 음란합니다. 이것은 비열합니다.
편의성 ... 결국 이러한 변수가 단일 인스턴스에서 사용되는 경우 객체를 만들어야 하는 이유는 무엇입니까? 또한 변수를 참조할 때 OBJECT NAME.VARIABLE NAME인 경우 코드를 읽는 것이 훨씬 편리합니다.
알시믹스 :
2. 클래스의 정적 필드에 액세스하는 방법에는 두 가지가 있습니다(구조는 기본적으로 공개 액세스가 가능한 클래스이며 상속될 때).
a) 클래스 네임스페이스를 통해 - 예를 들어 Symbol_Properties::gd_Spread
(doubleSpread = Symbol_Properties::gd_Spread) -Spread 값 은Symbol_Properties 클래스 의 gd_Spread와 같아집니다.
(doubleSpread = Symbol_Properties::gd_Spread =0 )Symbol_Properties 클래스의gd_Spread 값 과Spread 값 이 0이 됨
그게 다야! 그래서 내가 한거야. 이 구조체의 변수를 참조하는 변수를 즉시 0으로 초기화한 다음 영구적으로 메모리에 저장합니다. 논리적이기 때문에 이러한 변수는 단일 인스턴스에서 필요합니다. 따라서 이 경우에는 다른 객체를 생성할 이유가 없습니다. 결국, 그것은 논리적입니다 .. 나와 동의하지 않습니까?
알시믹스 :
b) 클래스 개체(예 : Symbol_Properties obj; ) 를 만들고 이 개체를 통해 일반 클래스 필드처럼 액세스합니다.
그러면 변수는 정적이 아니며 프로그램이 실행되는 동안 값이 유지되지 않는다는 보장도 없습니다.
기본을 모르면 정적 클래스 필드를 제대로 생성하지도 못한다면 어떤 패턴을 이야기할 수 있을까요?
(Habré의 싱글톤에 대해서는 많은 기사가 있으며 왜, 어떻게, 무엇이 잘못되었는지)
싱글톤(Singleton) 또는 정적 클래스?싱글톤 패턴 사용
(Habré의 싱글톤에 대해서는 많은 기사가 있으며 왜, 어떻게, 무엇이 잘못되었는지)
싱글톤(Singleton) 또는 정적 클래스?싱글톤 패턴 사용
내가 못본거 같은데? 나는 그것이 어떻게 작동하는지 잘 이해하지 못했습니다. 그게 바로 문제 야. 그러나 나는 도중에 싱글 톤이 필요하지 않습니다. 그래서 정적 멤버로 관리합니다.
기본을 모르면 정적 클래스 필드를 제대로 생성하지도 못한다면 어떤 패턴을 이야기할 수 있을까요?
방법을 알면 고칠 수 있습니다. 나는 문서에 따라 어제 썼습니다. 하지만 실수도 많다. 이와 같이:
무엇 향후 계획?
나는 그것을 버리지 않았다. 일반적으로 현재 버전은 다음과 같습니다.
내가 이해하는 한, 이제 이렇게 긴 이름으로 각 정적 변수에 액세스해야 합니까?
Symbol_Properties::gd_Spread = 0 ;
아니면 변수 초기화 구조를 설명한 후 발생했을 때 해당 정적 멤버를 특정 유형 변수에 할당하는 방식으로 구현하는 것이 더 쉬운가요?
그런 다음 해당 정적 변수에 대해 주어진 변수를 참조하는 코드에서, 맞습니까?
글쎄, 네, .. 가장 중요한 것은 Vadim 이 알고 있다는 것입니다 :)))))
예, 다음과 같은 일반적인 대화:
Q: 여기 친구들이 사탕을 권했어요. 그게 내가 필요한거야!
나: (당황...사탕이 무슨 상관이야? V가 친구에게 DR에 가거나 아이들을 치료하고 싶어하거나 자신이나 다른 사람을 치료하고 싶어? 아마도 그는 사업을 시작하여 지금 과자를 팔고있을 것입니다. ? 이게 벨로루시에서 마지막 사탕이 되었고 지금은 V 독점이 아닐까? B가 과자를 그리워한다면?... "과자는 왜, 무엇으로 할까?"라는 주제에 대해 다른 많은 생각이 내 머릿속을 스쳐지나갔다. B와의 의사 소통, 내 텔레파시 능력이 실패했습니다. 머리에 아무것도 오지 않았습니다.)
몰라요.
1. 이 모든 것이 무엇을 위한 것입니까?
2. 클래스의 정적 필드에 액세스하는 방법에는 두 가지가 있습니다(구조는 기본적으로 공개 액세스가 가능한 클래스이며 상속될 때).
a) 클래스 네임스페이스를 통해 - 예를 들어 Symbol_Properties::gd_Spread
( double Spread = Symbol_Properties::gd_Spread) - Spread 값 은 Symbol_Properties 클래스 의 gd_Spread와 같아집니다.
(double Spread = Symbol_Properties::gd_Spread = 0 ) Symbol_Properties 클래스의 gd_Spread 값 과 Spread 값 이 0이 됨
b) 클래스 개체 (예 : Symbol_Properties obj; ) 를 만들고 이 개체를 통해 일반 클래스 필드처럼 액세스합니다.
(이중 스프레드 = obj.gd_Spread)
( 이중 스프레드 = obj.gd_Spread = 0)
1. 이 모든 것이 무엇을 위한 것입니까?
편의성 ... 결국 이러한 변수가 단일 인스턴스에서 사용되는 경우 객체를 만들어야 하는 이유는 무엇입니까? 또한 변수를 참조할 때 OBJECT NAME.VARIABLE NAME인 경우 코드를 읽는 것이 훨씬 편리합니다.
2. 클래스의 정적 필드에 액세스하는 방법에는 두 가지가 있습니다(구조는 기본적으로 공개 액세스가 가능한 클래스이며 상속될 때).
a) 클래스 네임스페이스를 통해 - 예를 들어 Symbol_Properties::gd_Spread
( double Spread = Symbol_Properties::gd_Spread) - Spread 값 은 Symbol_Properties 클래스 의 gd_Spread와 같아집니다.
(double Spread = Symbol_Properties::gd_Spread = 0 ) Symbol_Properties 클래스의 gd_Spread 값 과 Spread 값 이 0이 됨
그게 다야! 그래서 내가 한거야. 이 구조체의 변수를 참조하는 변수를 즉시 0으로 초기화한 다음 영구적으로 메모리에 저장합니다. 논리적이기 때문에 이러한 변수는 단일 인스턴스에서 필요합니다. 따라서 이 경우에는 다른 객체를 생성할 이유가 없습니다. 결국, 그것은 논리적입니다 .. 나와 동의하지 않습니까?
b) 클래스 개체(예 : Symbol_Properties obj; ) 를 만들고 이 개체를 통해 일반 클래스 필드처럼 액세스합니다.
단순 정적 변수(Simply STATIC VARIABLES ) 그들은 다양한 클래스에서 사용됩니다. 그래서 나는 그들을 일종의 그룹화했습니다.
그리고 상수는 기쁘게하지 않았습니다. 상수는 값을 변경하지 않으며 이러한 변수는 값을 변경할 수 있어야 합니다.