Native/C++

변환 생성자

aucd29 2013. 10. 2. 18:57
[code]#include <Turboc.h>
#include <iostream.h>

class Time
{
private:
    int hour, min, sec;
public:
    Time(){}
    Time(int abssec)
    {
        hour = abssec / 3600;
        min = (abssec/60) % 60;
        sec = abssec % 60;
    }

    void OutTime()
    {
        cout << "현재 시간은 " << hour << ":" << min << ":" << sec << " 입니다. " << endl;
    }
};

int main(int argc, char *argv[])
{
    Time Now(3723);
    Now.OutTime();
    return 0;
}

// 클래스의 객체들도 일반 타입과 마찬가지로 암시적 변환이 가능할 수 있는데 클래스가 일반 타입과 완전히 동등해지려면 타입을 변환할 수 있는 문법적 장치가 있어야 한다. 그 첫번째 장치가 바로 변환 생성자(Conversion Constructor)이다. 변환 생성자는 기본 타입으로부터 객체를 만드는 생성자이며 기본형의 인수를 하나만 취한다. 인수가 둘 이상이면 변환 생성자가 아니다. 다음 예제의 Time 생성자는 정수값으로부터 Time객체를 만든다.
[/code]