오류, 버그, 질문 - 페이지 1119

 

컴파일 오류: 컴파일러는 참조로 포인터를 전달하고 있다고 생각했습니다.

 class A {
};

void f1( A*  a ) {}
void f2( int a ) {}

void OnStart ()
{
        A* const a1 = new A();
        f1( a1 ); // ошибка компиляции : constant variable cannot be as reference
         const int a2 = 1 ;
        f2( a2 ); //все нормально
}

f1( A* const a )을 작성하면 모든 것이 컴파일되지만 f2( const int a )를 작성하지 않고 f2( int a )의 경우 컴파일러는 모든 것을 올바르게 이해합니다.


по сути
f1( A*  a ) отличается от f1( A* const  a )
тем же, чем
f2( int a ) отличается от f2( const int a )
f2( a2 ) 에도 오류가 포함되어야 합니다.
 
Lone_Irbis :

여하튼 나는 전체 코드와 .set을 여기에 게시하고 싶지 않지만 어딘가에 보낼 수 있습니다.

고맙습니다! 재현해 봅시다. 코드는 서비스 데스크로 보낼 수 있습니다(모든 확인 후 삭제 보장).
 

포인터 const A*를 삭제할 수 없습니다.

 class A {
};

void OnStart ()
{
         const A *a = new A;
         delete ( a ); //ошибка компиляции: constant cannot be modified
}

얼핏 보면 이해가 됩니다. delete는 ~A() 소멸자를 호출하며 const(***)가 될 수 없습니다.

그러나 다음 예에서 객체를 삭제하는 것은 근본적으로 불가능합니다.

 void f()
{
    const A a;
}

f()가 종료될 때 const가 될 수 없는 소멸자가 계속 호출되므로 인수(***)가 작동하지 않습니다.

또한 C++ 컴파일러는 인수가 const A *로 선언된 경우에도 삭제 ( a )를 방지하지 않습니다. 따라서 소멸자는 const가 아닌 개체를 포함하여 모든 개체에 대해 호출되기 때문에 const로 선언할 수 없습니다.

 
메시지 등급은 더 이상 고려되지 않습니다(
 
GriFFon4ik :
메시지 등급은 더 이상 고려되지 않습니다(
그래 그만뒀어...
 
GriFFon4ik :
메시지 등급은 더 이상 고려되지 않습니다(
글쎄, 알았어.
 
barabashkakvn :
글쎄, 알았어.
슬퍼 :-(
 

나는 여기에서 게시물을 확인했습니다. 증가하지 않았습니다. 아마도 영리하게 개선된 공식이 있을 것입니다...

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

흥미롭고 유머러스한

뉴디지털 , 2014.04.09 14:23

생각을 금할 필요가 있습니다-그것은 기분을 상하게합니다!

라인은 운율로 짜여져 있습니다.
바다는 땅을 핥습니다.
아이들이 변기에 똥을 싼다.
성인 - 영혼.

예, 그리고 하나님은 평가와 함께 그를 축복합니다.
 
newdigital :

나는 여기에서 게시물을 확인했습니다. 증가하지 않았습니다. 아마도 영리하게 개선된 공식이 있을 것입니다...

예, 그리고 하나님은 평가와 함께 그를 축복합니다.
적립) 비록 아니지만(
 
포럼의 메시지 등급은 더 이상 고려되지 않습니다(
오류, 웹사이트 mql5.com, 폐쇄, 개시: 2014.04.09 14:07, #993171

포럼의 메시지 등급은 더 이상 고려되지 않습니다(



응원단 2014.04.09 15:27
왜 그렇게 결정했습니까?
그리폰4ik 2014.04.09 17:38
글쎄, 내가 댓글을 쓰기 전에 평점이 즉시 +1이되었지만 지금은 "즉시 +1"이 없습니다
응원단 2014.04.09 17:38

이제 등급이 주기적으로 추가되며 지연됩니다.