본문 바로가기

c++ 초기화3

C++ 32 [생성자 멤버변수 초기화리스트] ▣ 생성자에서 멤버변수 초기화 리스트 방법 : 클래스이름::생성자이름() : 멤버변수(값), 멤버변수(값) {} ▣ 매개변수가 있는 생성자 초기화 리스트 방법 : 클래스이름::생성자이름(매개변수) : 멤버변수(매개변수), 멤버변수(매개변수) ▣ { } 괄호에 위치가 멤버 변수 리스트 밑에 있어야 하고 : 초기화 리스트시 콜론을 붙이기 ▣ 그럼 number = 20; length = 20 이런 식으로 대입해도 되는데 초기화 리스트를 사용하는 이유는 (=) 대입은 초기화가 된 이후에 대입을 의미하고 () 리스트초기화는 오브젝트가 만들어질 때 초기화하는 것 다시 말해서 멤버변수 대입 없이 초기화, 상수, 참조변수를 초기화할 수 있다. 일반 대입은 불가능하다. ▣ 예시 const int number; , Pla.. 2023. 10. 18.
C++ 14 [유니폼 초기화] ▣ C++11 이번에는 타입의 초기화 방식이 일정하지 않았다. ▣ C++11부터 타입을 초기화할 때 유니폼 초기화(균일, 중괄호) 초기화를 따르도록 통일 ▣ C++ 11부터 {} 유니폼초기화를 이용해서 초기화 가능 ▣ n4{3}; : 대입연산자(=)를 생략가능하다. ▣ int n5{}; : 빈 중괄호로 초기화할 경우 0으로 초기화 ▣ 유니폼 초기화를 사용해서 구조체, 클래스 모두 초기화가 가능하고 초기화할 경우 생성자가 자동으로 호출 ▣ 동적메모리 할당을 하며 유니폼 초기화를 할 수 있다. 2023. 4. 12.
C++ [NULL, 0, nullptr, 초기화, 함수오버로딩] ▣ 안녕하세요. 이번장에서 데이터를 초기화하는 NULL, 0, nullptr에 차이를 공부해 보겠습니다. ▣ 우선 똑같은 이름에 두 개에 함수를 선언하겠습니다. 그리고 한개는 int num 정수에 값을 받는 매개변수로 한 개는 int *num 주소를 입력받는 포인터로 각각 선언을 합니다. 그런 다음 메인 함수에서 testFunce() 함수를 호출합니다. 첫번째 testFunce(0) 정수 값을 0으로 매개변수에 값을 전달해줍니다. 그럼 함수 오버 로딩을 하면 두 함수 중에 정수에 매개변수를 가지고 있는 함수를 호출하고 값을 전달하는걸 확인할 수 있습니다. ▣ 이번에는 매개변수에 NULL을 전달해줍니다. 디버그를 해보면 아까와 동일하게 정수형 매개변수를 가지고 있는 함수를 호출하는 걸 확인할 수 있습니다... 2022. 2. 4.