struct STRUCT
{
//private:int i;
};
// Нужен только для того, чтобы показать необходимость решения без конструктора
union UNION
{
STRUCT Struct; // конструктора не должно бытьint i;
};
// Обходим Warning "possible use of uninitialized variable"template < typename T>
void StructInit( T& ) {}
STRUCT Func()
{
STRUCT Res = { 0 }; // ок!// StructInit(Res); // с этой строкой Warning не появляется, но это какой-то абсурд!return (Res);
}
voidOnStart ()
{
Func();
}
구조에 기본 생성자를 추가합니다.
거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼
오류, 버그, 질문
fxsaber , 2017.09.06 09:38
부주의합니다 :) 이것이 왜 필요한지 설명해 주시겠습니까? 생성자를 사용할 수 없는 이유는 무엇입니까?
아니면 private 필드에 구조체 초기화 오류를 표시하기 위한 것입니까?
부주의합니다 :) 이것이 왜 필요한지 설명해 주시겠습니까? 생성자를 사용할 수 없는 이유는 무엇입니까?
내 코드를 작성할 때 내 구조가 통합에 관련된 상황을 정확히 접했기 때문입니다. 빈 생성자가 있는 솔루션이 바로 떠올랐지만 코드에 유니온이 있다는 아쉬움이 있었습니다. 그러므로 나는 지루함을 위해서가 아니라 실제 적용을 위해 질문합니다.
나는 이 "버그"(버그인지 아닌지) 를 피하기 위해 그러한 변태를 작성해야 했습니다.
나는 아직 다른 해결책을 보지 못했습니다.
시작하고 문제를 보았습니다. 현재 공용 필드가 있는 구조체만 공용체에서 사용할 수 있는 것 같습니다 . 그러면 다음과 같이 작성할 수 있습니다. struct = {0};
그렇지 않습니다 .
그렇지 않습니다 .
내가 다시 당신을 오해했을 수도 있지만 이 코드는 경고 없이 작동합니다.
내가 다시 당신을 오해했을 수도 있지만 이 코드는 경고 없이 작동합니다.
맞습니다. 공공 구조가 초기화됩니다. 하지만 노조는 그런 게 없다.
흥미롭게도 숨겨진 필드가 있는 구조가 새 구조의 공개 필드가 되면 모든 필드가 열려 있어도 새 구조가 초기화되지 않습니다.
안녕하세요! 말해봐, 배열을 선언할 수 있습니까? 변수를 통해 그 안에 있는 요소의 수를 나타냅니까? 그렇지 않다면 이 작업을 어떻게 수행할 수 있습니까?
안녕하세요! 말해봐, 배열을 선언할 수 있습니까? 변수를 통해 그 안에 있는 요소의 수를 나타냅니까? 그렇지 않다면 이 작업을 어떻게 수행할 수 있습니까?
https://www.mql5.com/ru/docs/array/arrayresize
안녕하세요! 말해봐, 배열을 선언할 수 있습니까? 변수를 통해 그 안에 있는 요소의 수를 나타냅니까? 그렇지 않다면 이 작업을 어떻게 수행할 수 있습니까?
배열 크기 조정()