728x90
다음 코드는 이전 장의 AirlineTicket 클래스를 사용하는 에를 보여주고 있다.
여기서 AirlineTicket 객체를 하나는 스택 기반으로, 다른 하나는 힙 기반으로 생성한다.
#include <iostream>
#include "AirlineTicket.h"
using namespace std;
int main()
{
AirlineTicket myTicket; // 스택 기반 AirlineTicket
myTicket.setPassengerName("Sherman T. Socketwrench");
myTicket.setNumberOfMiles(700);
double cost = myTicket.calculatePriceInDollars();
cout << "This ticket will cost $" << cost << endl;
// 스마트 포인터를 사용한 힙 기반 AirlineTicket
auto myTicket2 = make_unique<AirlineTicket>();
myTicket2->setPassengerName("Laudimore M. Hallidue");
myTicket2->setNumberOfMiles(2000);
myTicket2->setHasEliteSuperRewardsStatus(true);
double cost2 = myTicket2->calculatePriceInDollars();
cout << "This other ticket will cost $" << cost2 << endl;
// 여기서는 myTicket2가 자동으로 삭제되므로 코드로 작성할 필요 없다.
// 스마트 포인터를 사용하지 않는 힙 기반 AirlineTicket(바람직하지 않은 방식)
AirlineTicket* myTicket3 = new AirlineTicket();
myTicket3->setPassengerName("IeF");
cout << "PassengerName : " << myTicket3->getPassengerName() << endl;
// ... 티켓 3을 사용한다.
delete myTicket3; // 힙 객체를 삭제한다.
}
이 예제를 통해 객체를 생성하고 클래스를 사용하는 문법을 볼 수 있다.
'💻프로그래밍 내용 정리 > C++17' 카테고리의 다른 글
[C++ 1.4.1] 직접 리스트 초기화와 복제 리스트 초기화 (0) | 2022.08.18 |
---|---|
[C++ 1.4.0] 유니폼 초기화, 축소 변환 (0) | 2022.08.18 |
[C++ 1.3.1] 클래스 정의, 접근 수준(public, private), 생성자(생성자 이니셜라이저), 소멸자 (0) | 2022.08.17 |
[C++ 1.2.6] 타입 추론(auto, decltype) (0) | 2022.08.16 |
[C++ 1.2.5] 익셉션(exception(예외)), throw 구문, catch/try 구문 (0) | 2022.08.16 |