본문 바로가기

Develop/C++15

[C ++] 템플릿(Template) 같은 일을 하는 함수가 다섯 개 존재하지만 실제 사용되는 것이 하나라면 결국 불필요한 코드만 늘어나 메모리를 소모하는 꼴이다. 한마디로 비효율적인데 C++에서는 가급적이면 함수 다중 정의 보다는 '함수 템플릿'을 사용하길 권장한다. template 반환형식 함수이름(매개변수) { } #include using namespace std; template T Add(T a, T b) { return a + b; } int main(void) { cout 2023. 2. 2.
[C ++] 다중 정의 (Overloading) C++에서 '다중 정의'는 하나(함수 이름, 변수 이름등)가 여러 의미를 동시에 갖는 것을 말한다. C와 달리 C++에서는 매개변수 구성이 달라지거나 어떤 식으로든 함수 원형이 달라지면 이름이 같더라도 전혀 다른 함수가 된다. #include using namespace std; int Add(int a, int b, int c) { cout 2023. 2. 2.
[C ++] 범위 기반 for문 보통 배열 자료구조에 접근할 때 for문을 자주 사용하는데, 이는 배열의 요소가 선언할 때 확정되기 때문이다. 하지만 만일 배열 요소의 개수를 변경하게 된다면? 당연히 for문도 수정해야하는 번거러움이 생긴다. 이를 해결하기위해 범위 기반 for문을 사용하면 수정할 필요성이 사라진다. for(auto 요소변수 : 배열이름) 반복 구문; #include using namespace std; int main(int argc, char *argv[]) { int arr[5] = {10, 20, 30, 40, 50}; // 일반적인 반복문 for(int i = 0; i < 5; ++i) cout 2023. 2. 2.
[C ++] new와 delete연산자 연산자 new와 delete는 C++에서 객체를 동적할당하고 해제하는 '연산자'이다. 만약 단일 인스턴스라면 다음과 형태로 사용된다. 형식 *변수이름 = new 형식; delete 변수이름; 배열이라면 이렇게 사용한다. 형식 *변수이름 = new 형식[요소개수]; delete[] 변수이름; new연산자의 특징중 하나는 "메모리 크기를 정하지 않는다" 라는점이다. #include int main(int argc, char *argv[]) { int *data = new int; int *newdata = new int(10); *data = 5; std::cout 2023. 2. 2.
[C ++] auto C에서 auto 예약어는 기억 분류 지정자이다. 하지만 사실상 C에서 아무도 auto 예약어를 사용하지 않는다. (어차피 생략하게되면 auto로 지정되고 스택을 사용하도록 컴파일하기 때문) #include int main(void) { int a = 10; int b(a); auto c(b); std::cout 2023. 2. 2.