왜 그렇게 어렵게 만드나요? 충분히 할 수 있습니다. 및 -> 동등하고 상호 교환 가능한 항목
비유적으로 말하면
그것들을 교환 가능하게 만들면 둘 다 단순히 필요하지 않습니다.
C++에서는 다음이 가능합니다.
class A
{
public :
void f();
};
class PtrA
{
A* mPtr;
public
PtrA( A* a ) : mPtr( a ){}
A* operator ->()
{
return mPtr;
}
void f();
};
PtrA a( new A );
a.f(); // Это две разные функции
a->f(); //
지금은 개념이 없으며 개체와 개체에 대한 포인터가 하나의 힙에 혼합되어 있습니다.
이것은 객체와 마찬가지로 포인터로 작동하는 것을 가능하게 합니다. 어떤 경우에는 * 없이 더 간단하고 이해하기 쉬운 표기법을 제공합니다.
게다가, 그러한 포인터는 참조로 사용될 수 있습니다
그리고 이제 이 모든 것을 파괴하고 명확한 이유 없이 석기 시대로 돌아갈 것을 제안합니다.
그리고 이제 이 모든 것을 파괴하고 명확한 이유 없이 석기 시대로 돌아갈 것을 제안합니다.
글쎄, 그것은 당신의 의견입니다. 나는 정확히 반대라고 생각한다.
글쎄, 그것은 당신의 의견입니다. 나는 정확히 반대라고 생각한다.
A100 :
А что конкретно Вас не устраивает? Что в MQL указатель это фактически ссылка?
실제로는 그렇지 않습니다.)
MQL 주소 산술에서 의미가 없으므로 사용되지 않는다는 점을 감안할 때!?
실제로는 그렇지 않습니다.)
스마트 포인터에도 주소 산술이 없지만 어떤 이유로 사용됩니다.엄밀히 말해서 아니오, 하지만 주소 산술이 없는 경우 MQL 포인터\설명자는 C++ 포인터보다 C++ 참조에 더 가깝습니다(또는 최소한 더 멀지는 않음).
그렇다면 구문이 적절하게 보존되어야 합니다(* 제외).
아니, 심각한 이유는 없었다.
그것의 부재에 대한 유일한 정당성은 C++에 익숙하지 않은 사용자의 연약한 마음을 돌보는 것입니다.
엄밀히 말해서 아니오, 하지만 주소 산술이 없는 경우 MQL 포인터\설명자는 C++ 포인터보다 C++ 참조에 더 가깝습니다(또는 최소한 더 멀지는 않음).
그렇다면 구문이 적절하게 보존되어야 합니다(* 제외).
왜 그렇게 어렵게 만드나요? 충분히 할 수 있습니다. 및 -> 동등하고 상호 교환 가능한 항목
비유적으로 말하면
그것들을 교환 가능하게 만들면 둘 다 단순히 필요하지 않습니다.
C++에서는 다음이 가능합니다.
-> 연산자는 먼저 C++ 코드와의 호환성을 위해, 그리고 두 번째로 오버로드 가능성을 위해 언어에 추가해야 합니다(이는 스마트 포인터에 편리함).
그러나 물론 동등한 지점은 아닙니다. 점은 MQL의 범용 연산자입니다.
기본 클래스가 파생 클래스로 암시적으로 캐스트되는 버그가 MQL에서 여전히 수정되지 않는 이유는 무엇입니까? 컴파일러 경고 도 아닙니다!