목록2022/09/17 (2)
치춘짱베리굿나이스
CPP 07 C++ templates C++ 템플릿 템플릿 template T add(T x, T y) { return x + y; } 같은 이름의 함수를 인자 자료형이나 반환값만 다르게 하여 새로 생성하는 것을 오버로딩이라고 했었다 다만 오버로딩은 int, float, double, … 등 모든 자료형에 대해 함수를 따로따로 생성해주어야 한다는 단점이 있다 (귀찮다) 템플릿을 이용하면 자료형에 구애받지 않고 함수를 작성할 수 있으며, 어떤 자료형이든 내부에서 사용하는 연산자나 함수에 대한 오버로딩이 존재한다면 결과값을 얻어낼 수 있다 템플릿은 template라는 키워드 (예약어) 로 정의하고, typename T에서 T는 아무 단어나 넣어도 되지만 보편적으로 T가 많이 사용된다 template temp..
CPP06 C++ casts C++ 캐스팅 strtod std::string tmp = "33 44 55"; char* endptr; double value = strtod(tmp.c_str(), &endptr); // value = 33 // endptr = " 44 55" char* 형식의 문자열을 받아 double 자료형으로 변환한다 이때 두 번째 인자에는 char* 형식의 변수 주소가 들어가게 되는데, strtod는 첫 번째 문자열에서 숫자 (double) 로 추정되는 부분을 변환하고, 문자열 안에서 숫자로 변환된 부분문자열 다음 포인터를 두 번째 인자 주소에 넣어준다 예시에서 “33 44 55”를 인자로 넣으면, 33까지가 숫자이고 공백 문자열은 숫자가 아니므로 strtod는 공백 전까지를 숫자..