10. 이제 main() 함수에서 dynamic_array를 사용하는 코드를 작성합니다.

    int main()
    {
        int nStudents;
        std::cout << "1반 학생 수를 입력하세요: ";
        std::cin >> nStudents;
    
        dynamic_array<student> class1(nStudents);
        for (int i = 0; i < nStudents; i++)
        {
            std::string name;
            int standard;
            std::cout << i + 1 << "번째 학생 이름과 나이를 입력하세요: ";
            std::cin >> name >> standard;
            class1[i] = student{name, standard};
        }
    
        // 배열 크기보다 큰 인덱스의 학생에 접근
        try
        {
            // 아래 주석을 해제하면 프로그램이 비정상 종료합니다.
            // class1[nStudents] = student {"John", 8}; // 예상할 수 없는 동작
    
            class1.at(nStudents) = student{"John", 8};  // 예외 발생
        }
        catch (...)
        {
            std::cout << "예외 발생!" << std::endl;
        }
     
        // 깊은 복사
        auto class2 = class1;
        std::cout << "1반을 복사하여 2반 생성: " << class2.to_string() << std::endl;
    
        // 두 학급을 합쳐서 새로운 큰 학급을 생성
        auto class3 = class1 + class2;
        std::cout << "1반과 2반을 합쳐 3반 생성: " << class3.to_string() << std::endl;
    
        return 0;
    }
    
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.