< 비야네스트롭스트룹 C++ > 2. C++ 의 객체(변수), 타입, 값
< 데이터를 저장하고 사용하는 방법 / 객체, 타입, 값 >
프로그램은 출력뿐만 아니라, 사용자에게 입력을 받을 수 있다.
이 입력 된 값은 어딘가에 저장되어야 한다. 이 어딘가를 ' 객체 ' 라고 한다.
객체는 프로그램에서 메모리의 한 영역이다.
즉, 객체는 특정 타입의 객체를 저장하는 ' 상자 ' 에 비유 할 수 있다.
< 프로그램 코드 분석으로 객체와 변수 알아보기 >
#include "std_lib_facilities.h"
int main() {
string first_name;
cout << "당신의 이름은 무엇인가요?\n";
cin >> first_name;
cout << "오! 당신의 이름은 " << first_name << "이군요.\n";
}
이름을 묻고 대답을 하면, 이름을 불러주며 인사를 해주는 프로그램이다.
1. 첫 줄은 객체를 만들고, 그 객체의 이름을 지정해주는 정의문이다. 이렇게 이름을 붙인 객체를 앞으로 ' 변수 ' 라고 사용 할 것이다.
즉, 무언가 값을 담을 수 있는 상자를 만들고, 이름을 붙인 것이다.
2. 두 번째 줄은 이름을 묻는 프롬프트 ( prompt ) 다. 프롬프트는 사용자에게 행동을 취하게끔 조언하는 메세지로 사용된다.
3. cin 은 외부 라이브러리에서 정의된 표준 입력 스트림이다. 이 것과 입력 연산자를 통해, ' first_name ' 라는 이름을 가진 상자에 입력 되아진 값을 담는 것이다.
다시 정리해보자면, 객체란 상자에 무엇가를 담 듯, 컴퓨터 메모리에 값을 저장하기 위한 공간이다.
그리고 이 공간에 이름을 붙인 객체를 ' 변수 ' 라고 한다.
C++ 은 정적인 언어이기 때문에, 값을 객체에 담기 위해서 ' 담겨지는 값이 어떤 유형의 데이터인지 ' 명시 해주어야한다.
타입 ( type ) 을 통해 객체에 담겨지는 값이 어떤 유형의 값인지 지정 할 수 있다.
< 데이터 타입의 종류 >
- - int : 정수형 / 1, 2, 3
- - double : 부동소수점, 실수 / 1.5
- - char : 개별 문자 / 'a'
- - string : 문자열 / "abc"
- - bool : 논리 / true, false
리터럴 ( literal ) : 소스코드에 어떤 값을 지정하는 것. ex) int a = 1;
초기화 : 변수에 초기 값을 지정하는 것.
대입 : 변수에 새로운 값을 지정하는 것.
*초기화와 대입은 비슷해보이지만, 논리적으로 다르다.
선언 : 객체의 이름을 지정하는 구문.
정의 : 객체의 메모리 공간을 할당하는 선언의 일종.