일반적으로 이것은 모호한 질문입니다. 예를 들어, C#에서는 이러한 검사가 항상 존재하고 C++에서는 필요할 때만 존재하므로 속도면에서 이점이 있습니다.
결국, 개체의 필드에 액세스할 수 없는 메서드가 호출되면 포인터를 확인할 의미가 없습니다. 본질적으로 이러한 방법은 정적 방법과 동일합니다.
개체에는 데이터가 전혀 없을 수 있지만 특수한 유형 종속 방식으로 일부 외부 데이터에 액세스하거나 특별한 작업을 모두 수행하는 것과 같이 완전히 다른 중요한 동작을 구현할 수 있습니다. "데이터가 없는 상태에서 정적(100% 비가상 읽기) 방법의 동등성"과 같은 접근 방식을 정당화하는 방법을 모르겠습니다.
즉, 최소한 포인터 객체에는 항상 하나의 필드가 있습니다. 이것이 바로 해당 유형입니다. 호출된 메서드의 주소를 결정할 수 있습니다. 왜 OOP가 전혀 필요하지 않습니까?
추신 자동 개체의 경우 개인적으로 행동 논리에 반대하는 것이 없지만(거의 사용하지 않기 때문에) 포인터에 할당할 필요가 없습니다.
개체에 가상 메서드가 없더라도 액세스할 때 포인터의 유효성을 확인해야 합니다.
일반적으로 이것은 모호한 질문입니다. 예를 들어, C#에서는 이러한 검사가 항상 존재하고 C++에서는 필요할 때만 존재하므로 속도면에서 이점이 있습니다.
결국, 개체의 필드에 액세스할 수 없는 메서드가 호출되면 포인터를 확인할 의미가 없습니다. 본질적으로 이러한 방법은 정적 방법과 동일합니다.
일반적으로 이것은 모호한 질문입니다. 예를 들어, C#에서는 이러한 검사가 항상 존재하고 C++에서는 필요할 때만 존재하므로 속도면에서 이점이 있습니다.
결국, 개체의 필드에 액세스할 수 없는 메서드가 호출되면 포인터를 확인할 의미가 없습니다. 본질적으로 이러한 방법은 정적 방법과 동일합니다.
개체에는 데이터가 전혀 없을 수 있지만 특수한 유형 종속 방식으로 일부 외부 데이터에 액세스하거나 특별한 작업을 모두 수행하는 것과 같이 완전히 다른 중요한 동작을 구현할 수 있습니다. "데이터가 없는 상태에서 정적(100% 비가상 읽기) 방법의 동등성"과 같은 접근 방식을 정당화하는 방법을 모르겠습니다.
즉, 최소한 포인터 객체에는 항상 하나의 필드가 있습니다. 이것이 바로 해당 유형입니다. 호출된 메서드의 주소를 결정할 수 있습니다. 왜 OOP가 전혀 필요하지 않습니까?
추신 자동 개체의 경우 개인적으로 행동 논리에 반대하는 것이 없지만(거의 사용하지 않기 때문에) 포인터에 할당할 필요가 없습니다.불행히도, 나는 디자인 때문에 모두를 오도했습니다.
복사 생성자가 아니라 복사 연산자가 호출됩니다.
두 번째 경우 생성자 B()를 호출한 후
어쨌든 먼저 분석한 다음 편집합니다.
오, µl에 복사 생성자의 자동 생성이 있다는 것이 밝혀졌습니다(=를 통해서만 obj(other_obj)를 클래스화할 수 없기 때문에 존재하지 않는다고 생각했습니다). 그러나 다음과 같은 경우 생성되지 않는 이유는 다음과 같습니다.
오, µl에 복사 생성자의 자동 생성이 있다는 것이 밝혀졌습니다(=를 통해서만 obj(other_obj)를 클래스화할 수 없기 때문에 존재하지 않는다고 생각했습니다). 그러나 다음과 같은 경우 생성되지 않는 이유는 다음과 같습니다.
기본값 및 삭제는 지원되지 않습니다.
기본 복사 생성자는 지금까지 완료된 것으로 보입니다.
복사 연산자만, 즉 디자인:
기본 CFoo 생성자가 먼저 호출되고 그 다음에 복사 연산자가 호출됩니다.
복사 생성자가 아니라 복사 연산자가 호출됩니다.
기본값 및 삭제는 지원되지 않습니다.
네, 하지만 사용자 정의 복사 생성자가 있는 경우에만 복사 생성자 생성을 취소하면 됩니다. 그렇죠? 그리고 어떤 사용자도 아닙니다.
저것들. 객체는 내부의 부분적인 교체를 허용해서는 안 됩니다.
이것은 일종의 인공적인 자제입니다 ... 나는 말할 것입니다 - 생각의 협소함
문제가 무엇입니까?
나는 그런 디자인을 찾았고 ... 모든 것이 잘 작동합니다. 따라서 개발자가 모든 것을 그대로 두는 것이 좋습니다 ... 최소한 해당 연산자 / 생성자가 명시 적으로 정의 된 경우
이것은 일종의 인공적인 자제입니다 ... 나는 말할 것입니다 - 생각의 협소함
문제가 무엇입니까?
나는 그런 디자인을 찾았고 ... 모든 것이 잘 작동합니다. 따라서 개발자가 모든 것을 그대로 두는 것이 좋습니다 ... 적어도 해당 연산자가 명시 적으로 정의 된 경우
먼저 C++에서 모든 것이 어떻게 작동하는지 확인하십시오. 분명히 그의 규칙은 "편협한 사람들"에 의해 발명되었습니다.
그리고 잘못된 언어 구조로부터 자신을 보호하기 위해 매번 개그로 울타리를 치려면 ... 아니요, 처음에는 현명하게 해야 합니다. 내 말은 언어
먼저 C++에서 모든 것이 어떻게 작동하는지 확인하십시오. 분명히 그의 규칙은 "편협한 사람들"에 의해 발명되었습니다.
그리고 잘못된 언어 구조로부터 자신을 보호하기 위해 매번 개그로 울타리를 치려면 ... 아니요, 처음에는 현명하게 해야 합니다. 내 말은 언어
특히 당신을 위해 https://www.mql5.com/en/forum/1111/page2358#comment_10003995 를 고려하여 다시 확인했습니다.
괜찮아 DJ