상세 컨텐츠

본문 제목

[TIL] 1 - 2. 객체지향 기본 문법 - C++에 추가된 데이터 타입 및 향상된 for문

언어/C++

by 민:하 2022. 2. 7. 22:55

본문

 

1. C++에 추가된 데이터 타입

< bool >

참 또는 거짓을 나타내는 논리 타입 (true / false 저장)

1
2
3
4
5
6
7
8
9
#include <iostream>
using namespace std;
int main() {
    bool b = true;
    cout << b << endl;
    b = false;
    cout << boolalpha << b << endl;
    cout << noboolalpha << b << endl;
}
cs
  • bool 형 출력 시 default가 noboolalpha이기 때문에 true = 1, false = 0으로 출력
  • boolalpha : bool값을 문자로 true나 false로 출력
  • noboolalpha : bool값을 숫자로 0이나 1로 출력

 

< auto >

컴파일러에 의해 자동으로 타입이 정해지는 변수 선언

  • ex) auto num = 10;  // 자동으로 int형으로 할당된 후 10로 초기화
  • ex) auto a = 3.14;    // 자동으로 double형으로 할당된 후 3.14로 초기화
  • 선언과 초기화가 동시에 이루어져야 함.
  • C언어 : 기억 class명 (.c) / C++ : 자동 타입 시 사용 (.cpp)

 

< decltype(expr) >

expr이 나타내는 타입과 같은 타입을 따르는 변수 선언

  • expr 자리에는 수식이 들어올 수도 있고, 함수가 들어올 수도 있다. 함수의 경우, 리턴값 type으로 설정된다.
  • ex) decltype(sub( )) a = 4;   // 함수의 리턴 값 타입으로 a의 type 결정
  • ex) decltype(3 * 3.4) b;       // 수식의 최종 type으로 b의 type 결정
  • ex) int num = 1;  decltype(num) number = 8;  // num과 같은 type인 int형으로 할당

2. 향상된 for문

배열과 STL의 컨테이너에 대한 간략화된 구문을 제공한다.

auto와 함께 사용하면 더욱 간략화 된다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <cstdlib>
using namespace std;
int main() {
    int ary[5];
 
    // 기존 for 루프
    for(int i = 0; i < sizeof(data) / sizeof(data[0]); ++i) {
        data[i] = rand() % 10;     // data 배열에 0 ~ 9 사이 난수 대입
    }
 
    // 향상된 for 루프
    for(auto k : ary) {            // ary[0] ~ ary[4]를 차례로 k에 대입. k는 int 타입으로 추론
        cout << k << ' ';           // 표준 출력으로 ary 배열 값 전달
    }
}
cs

 

 

관련글 더보기

댓글 영역