본문 바로가기
코딩/C++

namespace, auto, trailing, 암시적 형변환, 명시적 형변환

by sonysame 2024. 2. 21.

1. namespace

namespace를 쓰지 않고 바로 using std::cout 도 가능

#include <iostream>

int main() {
	using std::cout;
	using std::endl;
	cout << "hello " <<endl;
}

 

2. auto

  • auto는 초기화도 같이 이루어져야 한다.
  • auto는 파라미터 타입에는 사용될 수 없다 -> 파라미터 타입에 사용하고 싶으면 template을 사용하자!
#include <iostream>

auto add(int x, int y)
{
	return x + (double)y;
}
int main() {
	using namespace std;
	auto result = add(1, 2);
	return 0;
}

 

3. trailing

#include <iostream>

auto add(int x, int y) -> double
{
	return x + (double)y;
}


int main() {
	using namespace std;
	auto result = add(1, 2);
	cout << result << endl;
	return 0;
}

 

4. 암시적 형변환

예시) numeric conversion 더 작은 범위로 형변환이 됐을 때 -> 문제가 됨

#include <iostream>

int main() {
	using namespace std;
	//numeric conversion
	int i = 30000;
	char c = i;
}

5. 명시적 형변환

1) C-style cast -> ex) (float)1

2) static_cast

3) const_cast

4) dynamic_cast

5) reinterpret_cast

char c = 'a';
std::cout << static_cast<int>(c) << std::endl; // prints 97, not 'a'

'코딩 > C++' 카테고리의 다른 글

열거형(enum)  (0) 2024.03.05
입력받는 법  (0) 2024.02.22
전역변수, static 변수, 내부 연결, 외부 연결  (0) 2024.02.19
비트플래그, 비트마스크  (0) 2024.02.17
const  (0) 2024.02.17