목록이것이 C++이다 (13)
UD_park's IT story
(학습 서적 이것이 C++이다에서 내용 발췌하였습니다) [보기용 예제 소스 코드에서 오류 발생시에 댓글이나 방명록에 글을 남겨 주시면 수정/보완하겠습니다] 이번에는 정말 많은 시간을 투자하여 이해하고 익힌 복사 생성자(Copy Constructor)에 대해서 포스팅 해보겠습니다 일단 복사 생성자에 대한 정의는 다음과 같습니다 객체의 본사본을 생성할 때 호출되는 생성자 - 클래스를 작성할 때 복사 생성자를 생략하면 디폴트 생성자처럼 컴파일러가 알아서 만들어 사용함 (반대로 복사 생성자를 적용하지 않으면 심각한 문제 발생할 경우도 존재함 - 클래스 내부에서 메모리를 동적 할당 및 해제하고 이를 멤버 포인터 변수로 관리하고 있는 경우) 글을 쓰고있는 저도 어려워 머리가 아프려고 합니다 일단은 사용 문법 형태를..
(학습 서적 이것이 C++이다에서 내용 발췌하였습니다) [보기용 예제 소스 코드에서 오류 발생시에 댓글이나 방명록에 글을 남겨 주시면 수정/보완하겠습니다] 이번에는 정말 어려운 개념이자 사용법인 This Pointer에 대한 포스팅을 해보겠습니다 This pointer의 정의란 다음과 같습니다 ① 작성 중인 클래스의 실제 인스턴스에 대한 주소를 가리키는 포인터 ② 멤버 값의 주소를 this가 불러서 값을 읽어오는 형태 ③ 자기 자신을 return 할 때 사용함 솔직히 저는 이렇게 정의해도 무슨 말인지 정확하게 이해가 잘 되지 않았었습니다 그래서 제가 공부하고있는 "이것이 C++이다"의 예제 코드를 한 줄 한 줄 해석하고 설명과 비교하며 해독해서 간신히 이해했습니다 그럼 소스 코드를 보며 쉽게 설명해드리겠..
(학습 서적 이것이 C++이다에서 내용 발췌하였습니다) [보기용 예제 소스 코드에서 오류 발생시에 댓글이나 방명록에 글을 남겨 주시면 수정/보완하겠습니다] 이번에는 객체에서 정말 많이사용되고 실무나 학업의 프로젝트 등에서도 정말 많이 활용되어지고 있는 메소드(Method)에 대해서 포스팅 해보겠습니다 첫 번째로 메소드 (Method)란? 메소드의 사전적인 의미는 방법과 수단을 나타냅니다 C++에서는 클래스의 멤버 함수를 메소드(Method)라고 한다 (멤버 함수 == 메소드) 이 개념을 쉽게 표현 하고자 한다면 예를 들어 스마트폰이라는 객체는 메신저, 통화, 게임, 인터넷이라는 기능이 있습니다 그것을 표현하면 스마트폰 갤럭시노트8; 갤럭시노트8.메신저(); 갤럭시노트8.통화(); 갤럭시노트8.게임(); ..
이번에는 한꺼번에 많은 내용들을 간단하고 쉽게 설명하는 포스팅을 해보겠습니다 (학습 서적 이것이 C++이다에서 내용 발췌하였습니다) [보기용 예제 소스 코드에서 오류 발생시에 댓글이나 방명록에 글을 남겨 주시면 수정/보완하겠습니다] ① 생성자와 소멸자 ② 생성자의 다중정의 ③ 명시적 디폴트 생성자 ④ 변환 생성자 이번 포스팅에 다룰 내용이 많아서 좀 길어질 수도 있겠네요 일단 ① 생성자와 소멸자에 대해서 설명을 해보겠습니다 간단한 설명으로 시작해보겠습니다 생성자와 소멸자는 클래스 객체가 생성 및 소멸될 때 '자동'으로 호출되는 함수입니다 사용법은 다음과 같습니다 class 클래스이름 { 접근제어지시자: 클래스이름(); // 이게 생성자 { } ~클래스이름(); // 이게 소멸자 { } } 그리고 매개 변..
(학습 서적 이것이 C++이다에서 내용 발췌하였습니다) [보기용 예제 소스 코드에서 오류 발생시에 댓글이나 방명록에 글을 남겨 주시면 수정/보완하겠습니다] 이번에는 객체 지향에 대하여 포스팅해보겠습니다 흔히 많이들 공부하시는 JAVA에서 객체 지향을 많이 접하게 됩니다 C++의 객체 지향 또한 JAVA와 크게 차이가 나지 않습니다 C++의 객체의 정의는 다음과 같습니다 객체란 변수들과 그와 관련된 메소드들이 모여서 이룬 하나의 꾸러미 정의는 참고정도만 해주시고 메소드에 대해 헷갈리시는 분들은 메소드를 설명한 다음포스팅을 참고해 주시기 바랍니다 그리고 C++의 클래스에 대한 정의는 다음과 같습니다 클래스란 C의 구조체에서 확정된 변수, 객체, 함수를 포함한 하나의 틀 이렇게 어렵게 이야기하는걸 싫어하는 저..
(학습 서적 이것이 C++이다에서 내용 발췌하였습니다) [보기용 예제 소스 코드에서 오류 발생시에 댓글이나 방명록에 글을 남겨 주시면 수정/보완하겠습니다] 이번에는 함수의 다중정의 즉, 오버로딩에 관하여 포스팅을 해보겠습니다 다중정의 즉, 오버로딩(Overloading)의 기본적인 설명은 다음과 같습니다 하나의 이름(함수, 변수 등)이 여러개의 의미를 가지는 것 이라고 정의 되어있습니다 이름은 같지만 기능등이 차이가 있는것이라고 생각하시면 될것 같습니다 쉽게 이야기하자면 이름이 같은 동명이인 이지만 첫 번째 "홍길동"은 의사이고 두 번째 "홍길동"은 군인이다 이라고 가정하자면 의사와 군인은 하는 역할과 업무가 다른것처럼 함수에서의 오버로딩 또한 이와 같은 개념이라고 생각하시면 될것같습니다 더 자세한 설명..
(학습 서적 이것이 C++이다에서 내용 발췌하였습니다) [보기용 예제 소스 코드에서 오류 발생시에 댓글이나 방명록에 글을 남겨 주시면 수정/보완하겠습니다] 이번에는 인라인 함수의 기본 개념과 사용법에 대해서 포스팅 해보도록 하겠습니다 인라인 함수에 대해 이야기 하기 전에 먼저 설명할게 있습니다 첫 번째로 매크로에 대해 간단하게 설명 드리겠습니다 프로그램에서 함수를 호출하면 스택 메모리 사용이 증가하고 매개변수 사용에 따라 메모리의 복사도 일어나기에 OverHead(목표달성을 위한 시간, 메모리 대역폭 등등의 자원)가 증가하는걸 막기위해 "매크로"라는 것을 사용했었습니다 쉽게 이야기하자면 오버헤드라는 자원을 아끼기 위해서 매크로라는 기능을 이전 C에서는 사용했었습니다 시간이 흘러 C에서 C++로 바뀌게 되..
(학습 서적 이것이 C++이다에서 내용 발췌하였습니다) [보기용 예제 소스 코드에서 오류 발생시에 댓글이나 방명록에 글을 남겨 주시면 수정/보완하겠습니다] 이번에는 함수 템플릿(Template)에 관하여 기본적인 설명과 사용법을 포스팅 해보도록 하겠습니다 설명 대신 사용법에 대해 먼저 이야기 해보도록 하겠습니다 template 반환형식 함수이름(매개변수) { 내용 } 함수 템플릿은 위와 같은 문법으로 사용합니다 하는 역할을 이전 포스팅에서 다뤘었던 auto와 비슷한 역할과 기능을 가지고 있습니다 간단한 보기의 코딩으로 좀 더 자세히 설명 해보도록 하겠습니다 위의 소스 코드는 제가 공부하고 있는 책인 "이것이 C++이다"의 Template 예문 입니다 temp 함수 매개 변수와 함수 내부의 변수들 모두 i..
(학습 서적 이것이 C++이다에서 내용 발췌하였습니다) [보기용 예제 소스 코드에서 오류 발생시에 댓글이나 방명록에 글을 남겨 주시면 수정/보완하겠습니다] 이번에는 동적할당에 대한 개념과 사용법에 관헤서 포스팅하도록 하겠습니다 첫 번째로 동적할당의 개념입니다 동적할당은 기존의 프로그래밍에서 발생했던 많은 변수들을 무분별하고 비효율적이였던 메모리 저장 방식을 효율적으로 저장해 주는 방식입니다 int Number = 10; 이라는 것으로 예를 들겠습니다 int라는 정수형과 Number라는 이름을 가진 이 아이는 기본적으로 데이터를 저장하기 위해 메모리 할당 즉, 밥그릇을 가지게 됩니다 (운영체제가 32bit 일때 4byte 64bit 일때 8byte) 그러나 10이라는 값은 너무 작은 양의 밥이기에 Numb..
(학습 서적 이것이 C++이다에서 내용 발췌하였습니다) [보기용 예제 소스 코드에서 오류 발생시에 댓글이나 방명록에 글을 남겨 주시면 수정/보완하겠습니다] 이번 포스팅은 namespace의 기본 개념과 사용법에 대해 포스팅해보도록 하겠습니다 제가 공부하고있는 C++책에서는 namespace에 대한 정의를 C++가 지원하는 각종 요소(변수, 함수, 클래스 등)들을 한 범주로 묶어주기 위한 문법 이라고 설명하고 있습니다 이것 또한 제 나름의 방식으로 쉽게 설명해보겠습니다 예를들어서 은행같은 금융회사에 S/W를 제공하는 UD라는 한 회사가 있습니다 그 회사에서 제공하고 있는 금융회사는 총 3곳으로 간단하게 A, B, C 회사라고 부르겠습니다 그러면 UD라는 회사는 A, B, C 회사에 하나의 S/W를 쉽게 말..