다른 사람이 더 좋은 제목을 제안 할 수 있습니까?컴파일러가 primairy 유형을 클래스로 가정하도록 하시겠습니까?
나는 질문이 있지만 올바른 영어로 쓰는 방법을 모르겠다.
내가 구조체 더블라는 이름의 한 가정 : 그래서 몇 가지 예에 의하여이를 요청할 것
struct Double
{
// Declarations/Definitions here
}
을 그리고 그것은 두 배 primairy 유형으로 사용됩니다. 내 클래스를 제외하고 거의 똑같은 클래스가 있습니다.
void Double::event_serialize(Stream& stream);
String Double::event_representate();
그래서이 유형 (및 기타)에 대한 래퍼를 만들어야했습니다.
template<class T> void print(T value)
{
std::cout << value.event_representate() << std::endl;
}
이 지금은 같은 조합으로 사용할 수 있습니다 :
는 지금은 예를 들어 이런 기능이
:Double x = 3.14;
print(x);
하지만을 나는로 사용하려는 경우
print(3.14);
컴파일러는 다음과 같이 동작합니다 :
const double __invis_value_1 = 3.14;
print(__invis_value_1);
오른쪽?
컴파일러가 primairy 유형 double 대신 Double로 감지 할 수 있는지 (가능한 경우) 어떻게 확인할 수 있습니까?
누군가가 나를 도울 수 있기를 바랍니다. 미리 감사드립니다!
재미 있을지 모르지만 흥미 롭습니다. 적절한 연산자를 가지고 있다면 캐스팅 할 수 있습니다 : print ((Double) 3.14); – mark
무료 함수로 만들면 사용자가 아닌 데이터 유형을 확장하는 적절한 방법입니다. – Xeo
어떻게하면됩니까? 의견을 주셔서 감사합니다. – Tim