[C++]C에서 C++문법으로 전환하기
by 브이담곰✨ [ 이것이 C++이다 ] 책을 공부하고 작성함.
1. 자료형
(1) 변수 선언 및 정의
- C 문법
int a = 10;
- C++ 문법
int a(10);
int b(a);
(2) auto
초깃값의 형식에 맞춰 선언하는 인스턴스의 형식이 '자동'으로 결정된다.
int main(void)
{
int a = 10;
int b = b(a);
auto c(b);
std::cout<< a + b + c << std::endl;
return 0;
}
(3) 메모리 동적 할당
C | C++ |
malloc(), free() | new, delete |
new 연산자 = 객체의 생성자를 호출 delete 연산자 = 객체의 소멸자를 호출 |
new, delete 연산자는 내부에서 malloc()과 free()함수를 호출한다.
✨ new, delete 연산자
- C++에서 객체를 동적 할당하고 해제하는 '연산자' 이다.
//단일 인스턴스일 경우
형식 *변수이름 = new 형식;
delete 변수이름;
//배열일 경우
형식 *변수이름 = new 형식[요소개수];
delete[] 변수이름;
✔ C에서는 sizeof 연산을 통해 크기를 계산하여 할당하지만 new 연산자를 활용하면 메모리 크기를 정하지 않는다!
(4) 참조자(Reference) 형식
✔ 선언과 동시에 반드시 초기화해야 한다.
형식 &이름 = 원본;
* 상수에는 참조자를 선언 할 수 없다.
-1- 참조형 변수 선언과 정의
int main(void)
{
int nData = 10;
//nData 변수에 대한 참조자 선언
int &ref = nData;
//참조자의 값을 변경하면 원본도 변경된다!
ref = 20;
cout << nData << endl;
//포인터를 쓰는 것과 비슷하다.
int *pnData = &nData;
*pnData = 30;
cout << nData << endl;
return 0;
}
-2- r-value 참조
int &&rdata = 3;
int TestFunc(int nParam)
{
int nResult = nParam * 2;
return nResult;
}
int main(void)
{
int nInput = 0;
cout << "Input number: ";
cin >> nInput;
//산술 연산으로 만들어진 임시 객체에 대한 r-value 참조
int &&rdata = nInput + 5;
cout<< rdata << endl;
//함수 반환으로 만들어진 임시 객체에 대한 r-value 참조
int &&result = TestFunc(10);
//값을 변경할 수 있다.
result += 10;
cout << result << endl;
return 0;
}
✨ r-value 참조자는 "임시 결과" ,즉 곧 사라질 대상에 대해 참조자를 부여할 수 있다.
(5) 범위 기반 for문
for(auto 요소변수 : 배열이름)
반복 구문;
✨ 반복 횟수는 배열 요소 개수에 맞춰 자동으로 결정된다!
'programming > C++' 카테고리의 다른 글
[Soen] 비트 연산자 (0) | 2022.12.22 |
---|---|
[STL] 연산자 오버로딩 (0) | 2022.01.03 |
[객체지향프로그래밍(2)]Finals Test Report : SceneManager 만들기(2) (0) | 2021.12.24 |
[객체지향프로그래밍(2)]Finals Test Report : HelicopterGame만들기(2) (0) | 2021.12.23 |
[객체지향프로그래밍(2)]Finals Test Report : HelicopterGame만들기. (0) | 2021.12.18 |
블로그의 정보
농담곰담곰이의곰담농
브이담곰