Coding/C++

< 비야네스트롭스트룹 C++ > 2. C++ 의 객체(변수), 타입, 값

ted0505 2021. 9. 21. 18:22

< 데이터를 저장하고 사용하는 방법 / 객체, 타입, 값 >

 

프로그램은 출력뿐만 아니라, 사용자에게 입력을 받을 수 있다. 

이 입력 된 값은 어딘가에 저장되어야 한다. 이 어딘가를 ' 객체 ' 라고 한다.

객체는 프로그램에서 메모리의 한 영역이다.

 

즉, 객체는 특정 타입의 객체를 저장하는 ' 상자 ' 에 비유 할 수 있다.

 

 

< 프로그램 코드 분석으로 객체와 변수 알아보기  >

#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

 

초기화 : 변수에 초기 값을 지정하는 것.

대입 : 변수에 새로운 값을 지정하는 것.

*초기화와 대입은 비슷해보이지만, 논리적으로 다르다.

 

선언 : 객체의 이름을 지정하는 구문.

정의 : 객체의 메모리 공간을 할당하는 선언의 일종.