전체 글보기

    [C++ 2.1.2] 스트링 리터럴(리터럴 폴링, 로 스트링 리터럴, 확장 로스트링 리터럴)

    [C++ 2.1.2] 스트링 리터럴(리터럴 폴링, 로 스트링 리터럴, 확장 로스트링 리터럴)

    스트링 리터럴 다음 코드는 hello란 스트링을 변수에 담지 않고 스트링 값을 곧바로 화면에 출력한다. cout

    [C++ 2.1.1] 동적 스트링(C 스타일 스트링), strlen, strcpy, strcat

    C 스타일 스트링 C 언어는 스트링 문자 배열로 표현했다. 스트링의 마지막에 널 문자(\0)를 붙여서 스트링이 끝났음을 표현했다. 이러한 널 문자에 대한 공식 기호는 NUL이다. L이 두 개가 아니라 하나며 NULL 포인터와는 다른 값이다. 아직도 C 스타일 스트링을 쓰는 C++ 프로그램이 많기 때문에 C 언어 스타일 스트링을 알아둘 필요가 있다. C 스트링을 다룰 때 \0 문자를 담을 공간을 깜박하고 할당하지 않는 실수를 저지르기 쉽다. 예를 들어 'hello'란 스트링을 구성하는 문자는 다섯 개이지만, 메모리에 저장할 때는 문자 여섯 개만큼의 공간이 필요하다. myString 'h' 'e' 'l' 'l' 'o' '\0' C++은 C 언어에서 사용하던 스트링 연산에 대한 함수도 제공한다. 이러한 함수는..

    [C++ 1.6.4] 사용자 인터페이스

    이 프로그램에서 마지막으로 구현할 부분은 사용자 인터페이스 코드로서, 사용자가 직원 데이터베이스를 쉽게 사용할 수 있도록 메뉴 기반으로 구현한다. main() 함수는 화면에 메뉴를 출력하고, 여기서 선택한 동작을 수행하는 과정을 무한히 반복한다. 각 동작은 대부분 별도의 함수로 정의한다. 직원 정보를 화면에 출력하는 것과 같은 간단한 동작은 main() 함수 코드 안에서 직접 구현한다. #include #include #include #include "Database.h" using namespace std; using namespace Records; int displayMenu(); void doHire(Database& db); void doFire(Database& db); void doPromo..

    [C++ 1.6.3] Database 클래스

    [C++ 1.6.3] Database 클래스

    Database 클래스는 표준 라이브러리에서 제공하는 std::vrctor 클래스를 이용하여 employee 객체를 저장한다. 1. Database.h 새로 채용한 직원에 대한 직원 번호는 데이터베이스에서 자동으로 할당한다. #pragma once #include #include #include "Employee.h" namespace Records { const int kFirstEmployeeNumber = 1000; 이를 위해 직원 번호의 시작값을 상수로 정의한다. 이 데이터는 성과 이름을 입력하는 것만으로 신입직원에 대한 정보를 쉽게 추가하는 기능을 제공한다. class Database { public: Employee& addEmployee(const std::string& firstName, ..

    [C++ 1.6.2] Employee 클래스

    [C++ 1.6.2] Employee 클래스

    1. Employee.h Employee 클래스는 Employee.h 파일에 정의한다. 이 파일에 들어있는 코드를 하나씩 살펴보자. #pragma once #include namespace Records { 첫 번째 줄에 있는 #pragma once는 같은 파일을 여러 번 불러오지(임포트하지)않게 해 준다. 이어서 string 기능을 불러오는 문장이 나온다. 그다음은 중괄호 안에 담긴 코드가 Records란 네임스페이스에 속하도록 선언한다. const int kDefaultStartingSalary = 30000; 그 뒤에 나오는 상수는 신입직원의 기본 급여를 정의한다. 이 상수는 Records 네임스페이스에 속하기 때문에 Records에 속한 코드에서는 kDefaultStartingSalary라고만 적..

    [C++ 1.6.1] C++ 프로그램 만들기(직원 관리 시스템)

    여기서 소개할 프로그램은 앞에서 구조체에 대해 설명할 때 살펴본 직원 데이터베이스 예제를 확장한 것이다. 클래스, 익셉션, 스트림, 벡터, 네임스페이스, 레퍼런스를 비롯한 다양한 기능을 활용하여 실전에서 쓸 만한 C++ 프로그램을 만들어본다. 직원 관리 시스템 회사 직원 정보를 관리하는 프로그램은 구조가 유연하고 기능이 편리해야 한다. 이 프로그램에서 제공할 기능은 다음과 같다. - 직원 채용 - 직원 해고 - 직원 승진 - 과거와 현재 직원 모두 조회 - 현재 직원 모두 조회 - 과거 직원 모두 조회 이 프로그램은 크게 세 부분으로 이루어져 있다. - Employee 클래스 직원 한 명에 대한 정보를 표현한다. - Database 클래스 회사에 속한 모든 직원을 관리한다. - UserInterface ..