Stanislav Korotky : 나는 그것에 대해 말하는 것이 아니다. typename은 유형 이름이 포함된 문자열을 반환합니다. 템플릿 클래스 메서드 내에서 유형이 있는 문자열은 "int"와 같으며 거기에서 호출된 생성자 내부에는 문자열이 "문자열"을 포함합니다.
class A { public :
template < typename T>
A( T ) { Print ( typename ( T )); }
};
class B { public :
template < typename T>
void f( T t ) { A a( t ); } //вызываем A::A(...)
};
voidOnStart ()
{
B b;
int i = 0 ;
b.f( i );
}
A100 :
네가 옳아. 불필요한 말 없이 간단명료하게. 현재 코드를 게시했습니다.
결과적으로 이 메서드 내에서 typename은 전달된 형식(예: int)을 올바르게 정의하고 이미 B 생성자 내부에서 typename은 string과 같습니다.
결과 typename은 항상 string 유형입니다 .
나는 그것에 대해 말하는 것이 아니다. typename은 유형 이름이 포함된 문자열을 반환합니다. 템플릿 클래스 메서드 내에서 유형이 있는 문자열은 "int"와 같으며 거기에서 호출된 생성자 내부에는 문자열이 "문자열"을 포함합니다.
#endif가 없으면 컴파일러에서 오류를 보고하지 않습니다.
보고하는 것이 바람직합니다. 그렇지 않으면 미묘한 오류가 있습니다.결과: 정수
얘들 아, 이것이 시장 버그인지 아니면 절대적으로 정상입니까?
나는 그것을 시도하지 않았지만 바인딩이 운영 체제가 아닌 하드웨어에 대한 것이라면 작동하지 않아야합니다. 그것은 하드 드라이브를 제거하고 다른 비디오로 다른 마더보드에 놓는 것과 같습니다. 즉시 새 드라이버를 찾기 시작합니다.
아니면 가상 머신 을 잘못 이해하고 있습니까?
파생 클래스의 인스턴스 개체 에서 가상 함수 를 호출하면 해당 함수가 파생 클래스가 아닌 기본 클래스에서 호출됩니다.
파생 클래스의 인스턴스 개체 에서 가상 함수 를 호출하면 해당 함수가 파생 클래스가 아닌 기본 클래스에서 호출됩니다.
생성자에서는 항상 이와 같습니다. 왜요? -> google C++(쿼리 문자열에 생성자라는 단어 추가)
감사합니다. 몰랐습니다.) MQL5 도움말에 이것을 추가하는 것이 좋을 것입니다. 모든 언어에서 그런 것은 아닙니다.