프로그래밍 (8) 썸네일형 리스트형 Push_back && emplace_back 이번엔 Push_back && emplace_back의 쓰임새와 차이점에대해서 알아보고자 한다. 시작하기에 앞서 결론부터 말하자면 push_back은 1) 객체를 삽입하기 위해서 똑같은 임시 객체를 하나 더 만들어서 거기에 복사한 다음 벡터에 삽입 2) 삽입이 끝나면 임시 객체 파괴 3) 잠깐 쓰고 버릴 메모리를 할당해준다. 3) 임시 객체 생성자를 호출해서 생성하고 소멸자를 불러서 파괴시키는 과정에서 불필요한 연산이 생긴다 => 다소 비효율적, 속도느림 emplace_back은 1) 가변인자 템플릿을 사용해서 삽입하려는 자료형에 따라 함수 내에서 삽입을 위한 객체를 자체 생성한다. 즉! 똑같은 임시 객체를 만들 필요가 없다 2) 파괴해야 할 임시 객체 자체가 생기지 않는다 3) 잠깐 쓰고 버릴 메모리를.. 업캐스팅 &&다운캐스팅 더보기 HTML 삽입 미리보기할 수 없는 소스 참조한 사이트 c++에서 자주 쓰이고 아주 유용한 두가지 캐스팅에 대해서 공부해보자. 업캐스팅 우선 업캐스팅이란 부모클래스의 자식클래스의 객체를 부모클래스의 포인터로 가리킬때 일어난다. 업캐스팅을 통해 자식클래스를 부모클래스의 객체처럼 다룰 수 있게 해주어야할 때 사용한다. 즉 코드의 재 사용성을 높이기 위해서 사용해준다고 할 수 있다. 하지만 업캐스팅을 하면 기본클래스에 정의된 멤버(함수)만 호출할 수 있기 떄문에 파생클래스의 고유 함수는 사용할 수 가 없게 된다. 이때 다시 다운캐스팅의 과정을 통해 본래 함수를 사용하게 해주어야한다. Parents* parents = new Child; 또한 업캐스팅의 경우에는 명시적인 형변환이 필요하지 않지만 다운캐스팅.. 객체지향(C++)과 절차지향(C)의 차이 이번에는 C++에서 가장 중요한 내용인 객체지향에 대해 알아보고자 합니다. C언어(절차지향언어) 와 C++(객체지향언어)의 차이에 대해서도 알아보자. 우선 절차지향언어를 사용하는 프로그래밍 즉! 절차지향프로그래밍이란 순서대로 실행하는 프로그래밍이다. 우리가 썻던 C언어 코드를 보면 위에서 아래로 흐르듯이 코드가 실행이되는것을 알 수 있다. 이에 따른 장점은 실행속도가 빠르다는것이고 단점은 유지보수가 어렵다는 점이 있다. 반면 객체지향언어를 사용하는 프로그래밍은 여러가지로 세분화되어있는 여러가지 용도의 함수들을 사용하여 하나의 큰 형태를 만드는것이다. 예를들어 객체지향프로그래밍은 요리라고 할 수 있다. 여러가지 요리들을 만들수 있는 (1)다채로운 요리재료들 요리를 도와주는 (2)다양한 조리기구들( 냄비, .. NameSpace namespace란? 그동안 우리가 모르고 써왔던, 알긴알지만 애매하게 알았던 개념이었던 namespace가 무엇인지 공부해보자. 네임스페이스란 네이밍이 겹치는 현상을 방지하기위해서 만들어진 편의 기능이라고 할 수 있다. 우리가 흔히 사용하는 cin, cout의 기능또한 std라는 네임 스페이스 안에 들어가있는 편의기능인데 우리가 이를 사용하기 위해서 매번 std::cin , std::cout을 하는 번거러운 작업을 거쳐야하는데 이때 using 이라는 기능을 활용하여 한번만 선언해주면 그 다음은 생략해줄수 있다는 것이다. using namespace {사용할 편의기능} 예시를 들어보자면 #include int main() { std::cout C++ 기본 입출 오늘은 C++기본입출력에대해 공부해보자. 프로그래밍 기초지식(2)C언어 &C++ 오늘은 C언어 &C++를 알아보려한다. 한번 설명하기에는 무수히 많은 차이가있고, c언어가 발전한형태가 c++이다보니 유사한점도 많을것이다 이 많은것들 가운데 차이점에대해서 얕게나마 공부해보자. 가장중요하다 생각되는 부분이다 객체지향언어의 3가지 속성은 반드시 외우고 또 암기해두자 기술문서 작성시 이를 얼마나 잘쓰는지가 프로그래머의 능력이라고 필자는 생각한다. 프로그래밍을 위한 기초지식 프로그래밍이란 이전 1 다음