C++의 기본 데이터 유형은 int, float, double 등과 같이 언어 자체에서 미리 정의된 데이터 유형입니다. 객체는 클래스의 인스턴스이고 C++는 객체지향 언어이므로 기본 데이터 유형과 객체 간의 변환이 필요합니다. 클래스는 데이터 유형에 대한 아키텍처 계획 역할을 합니다. 이는 데이터를 구체적으로 설명하지는 않지만 클래스 이름이 의미하는 바, 즉 해당 클래스의 개체 모양과 해당 클래스에서 수행할 수 있는 작업을 지정합니다.
C++ 언어 컴파일러에서는 원시 데이터 유형을 객체로 변환하는 것이 명확하게 정의되어 있지 않으므로 원시 데이터 유형을 객체로 변환하려면 프로그래머가 메커니즘을 정의해야 합니다. 기본 유형이 특정 객체로 변환되는 방식은 사용자 정의 클래스의 생성자에서 정의됩니다. 이 문제를 더 잘 이해하기 위해 예를 들어 보겠습니다.
우리가 해결하고 있는 문제는 무게를 그램 단위로 킬로그램과 그램으로 변환하는 것입니다. 이를 위해 두 개의 정수 멤버 kg과 gm을 사용하여 사용자 정의 클래스 가중치를 정의합니다. "kg"은 주어진 무게의 킬로그램 값이고 "gm"은 변환할 1kg 미만의 남은 무게입니다. 이 문제를 해결하기 위한 알고리즘은 아래와 같습니다.
변환 구문은 다음과 같습니다 -
으아아아정의된 클래스의 생성자에서 다음을 수행합니다.
앞서 언급했듯이 모든 변환 메커니즘은 생성자 내에서 정의되어야 합니다. 생성자는 매개변수화되어야 하며 원래 소스 값은 매개변수로 생성자에 전달되어야 합니다. 문제의 소스코드는 다음과 같습니다.
예제에서 입력은 주 함수 내부에 있으며 "ip"입니다. 클래스 가중치 "w"의 객체도 있습니다. 방금 클래스 객체에 정수 값을 할당하고 해당 객체의 매개변수화된 생성자에 대한 암시적 호출을 호출했습니다. 생성자에 정의된 함수가 실행되었고, 마지막으로 show 함수를 호출하여 출력이 표시됩니다.
이 예에서는 기본 유형에서 사용자 정의 클래스 객체로의 변환이 생성자에 대한 암시적 호출을 사용하여 수행됩니다. 생성자가 객체를 인스턴스화하기 위해 여러 기본 값을 요구할 때까지는 괜찮습니다. 따라서 생성자를 명시적으로 호출한 다음 원래 값을 개체 생성자에 매개 변수로 전달해야 합니다. 객체에서 기본 유형으로 변환하는 경우에는 그 반대가 적용되며 완료하려면 더 복잡한 프로세스가 필요합니다.
위 내용은 기본 유형을 객체로 변환하는 C++ 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!