Notice
Recent Posts
Recent Comments
Link
오븐 노트
[C++] 중괄호 초기화 { } 본문
#include <iostream>
using namespace std;
#include <vector>
#include <list>
#include <deque>
#include <map>
#include <set>
#include <algorithm>
class Knight
{
public:
Knight()
{
}
Knight(int a, int b)
{
cout << "Knight(int, int)" << endl;
}
Knight(initializer_list<int> li) // 초기화 할때 사용하는 리스트 느낌?
{
cout << "Knight(initializer_list)" << endl;
}
};
int main()
{
// 중괄호 초기화 { }
int a = 0;
int b(0);
int c{ 0 };
Knight k1;
Knight k2 = k1; // 복사 생성자 (대입 연산자X)
Knight k3{ k2 }; // 복사 생성자
Knight k30; // 기본 생성자
k30 = { k1 }; // 대입 연산자
vector<int> v1;
v1.push_back(1);
v1.push_back(2);
v1.push_back(3);
vector<int> v2(10, 1); // push_back 10번 한 효과
int arr[] = { 1, 2, 3, 4 };
// 중괄호 초기화
// 1) vector 등 container와 잘 어울린다.
vector<int> v3{ 1, 2, 3, 4 };
// 2) 축소 변환 방지
int x = 0;
// double y(x);
// 3) Bonus
Knight k4{ }; // 기본 생성자
// 주의점
Knight k5{ 1, 2 }; // 인자를 2개만 넣어서 생성해도 initializer_list 우선으로 호출되어버린다.
// 괄호 초기화 ()를 기본으로 간다
// - 전통적인 C++ (거부감이 없음)
// - vector 등 특이한 케이스에 대해서만 { } 사용
// 중괄호 초기화 {}를 기본으로 간다
// - 초기화 문법의 일치화
// - 축소 변환 방지
return 0;
}
[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문 - 인프런 | 강의
C++ 카테고리의 글은 인프런 Rookiss님의 강의를 공부하며 정리하는 내용입니다.
이미 알고 있는 내용도 다시 정리 되어있을 수 있습니다.
모든 글은 제가 공부하기 위해 작성합니다.
'Develop > C++' 카테고리의 다른 글
[C++] using (0) | 2023.12.07 |
---|---|
[C++] nullptr (0) | 2023.12.07 |
[C++] auto (0) | 2023.10.03 |
[C++] algorithm (0) | 2023.09.30 |
[C++] 연습 문제 (0) | 2023.08.31 |