사랑하애오
article thumbnail
C++ #07 캡슐화 +접근제한지시자
C++ 2021. 11. 29. 15:04

07. 캡슐화 캡슐화 기법 프렌드 C++에서 기본적으로 멤버 변수에 접근하기 위해 public 멤버 함수를 이용한다. 하지만 friend 키워드를 사용하면 특정한 객체의 모든 멤버에 접근 가능하다. 프렌드 함수 #include #include using namespace std; class Student { private: int studentId; string name; public: Student(int studentId, string name) : studentId(studentId), name(name) { } friend Student operator +(const Student& student, const Student& other) { return Student(student.studentI..

C++ #06 오버로딩
C++ 2021. 11. 29. 14:58

06. 오버로딩 함수 오버로딩 C++은 동일한 이름의 멤버 함수를 다양한 방식으로 활용하기 위해 오버로딩 사용 #include #include using namespace std; class Person{ private: string name; public: Person() { name = "임꺽정"; } Person(string name) : name(name) { } void showName() { cout

article thumbnail
C++ #05 정적할당, 동적할당
C++ 2021. 11. 29. 14:50

메모리 정적 할당 vs 동적 할당 (Stack vs Heap) Memory 영역 (Stack vs Heap) 컴퓨터에서 메모리 영역은 아래와 같이 나뉘어있다. Code : 실행한 프로그램의 코드가 저장됨 Data : 전역변수와 static변수가 저장되며 프로그램 종료 시까지 사라지지 않고 남아있음 Heap : 동적으로 할당된 메모리영역이며 프로그래머에 의해 할당( C++ : new, C : malloc ) 및 해제( C++ : delete, C : free )됨 Stack : 지역변수와 매개변수가 할당되고 함수를 빠져나가면 자동 소멸됨 정적 메모리 할당 vs 동적 메모리 할당 프로그래밍 관점에서 메모리 영역에는 크게 stack과 heap 메모리 공간이 있다. 정적으로 메모리를 할당하면 컴파일 시 stac..

article thumbnail
C++ #04 클래스 상속
C++ 2021. 11. 29. 14:37

04. 클래스 상속 상속 상속(Inheritance)은 객체 지향 프로그래밍의 주요한 특성 중 하나이며 이를 통해 프로그램의 논리적 구조를 계층적으로 구성할 수 있다. 자식 클래스(Child Class)가 부모 클래스(Parent Class)의 속성을 그대로 물려받아 사용할 수 있다. 따라서 소스 코드의 재사용성을 높인다. 상속의 사용 자식 클래스는 파생 클래스(Derived Class)라고도 불리며 부모 클래스의 모든 속성을 물려받는다. 자식 클래스는 콜론(:)을 활용해 부모 클래스와 연결 된다. #include #include using namespace std; class Person{ private: string name; public: Person(string name) : name(name) ..

C++ #03 생성자와 소멸자
C++ 2021. 11. 29. 14:31

03. 생성자와 소멸자 생성자 C++에서 생성자(Constructor)를 이용해 객체를 생성함과 동시에 멤버 변수를 초기화 할 수 있다. 생성자는 특별한 메소드로 클래스 이름과 동일한 이름으로 구현된다. 생성자의 특징 생성자는 반환값이 없음 생성자는 여러번 정의 될 수 있음(매개변수 다양화) #include #include using namespace std; class Character { private: string name; int ragePoint; int hp; int damage; public: Character(string name, int hp, int damage) { this->name = name; this->ragePoint = 0; this->hp = hp; this->damage..

C++ #02 클래스
C++ 2021. 11. 29. 14:27

02. 클래스 구조체와 클래스 일반적으로 C++의 클래스는 구조체보다 효과적인 문법이며 거의 흡사하지만 클래스에서는 내부적으로 함수 등을 포함할 수 있다. 또한 클래스는 상속(Inheritance) 등의 개념을 프로그래밍에서 그대로 이용할 수 있다는 점에서 객체 지향 프로그래밍을 가능토록 해주는 기본 단위이다. 구조체 #include #include using namespace std; struct student { string name; int score; }; int main(void) { struct student a; a.name = "Jarvis"; a.score = 100; cout

article thumbnail
C++ #01 C와 C++ 비교
C++ 2021. 11. 29. 14:24

01. C와 C++ 비교 C와 C++ 차이점 및 특징 C++ 파일도 C와 동일하게 Visual Studio 상에서 손쉽게 만들 수 있다. 프로젝트를 생성한 뒤 소스파일에서 오른쪽 클릭 후 추가 - 새항목을 선택한 뒤 'main.cpp'와 같이 명명하여 추가하면 된다. iostream iostream 라이브러리는 C++ 표준 입출력 라이브러리이며 C의 stdio.h와 흡사하게 사용된다. 과거에는 iostream.h로 쓰였지만 최신 C++ 문법에서는 .h를 붙이지 않는다. #include using namespace std; int main(void) { cout 와 는 공백 문자(Space, Enter, Tab)을 기준으로 입력받는다. #include #include int main(void) { std:..