목록Programming Language/C++ (32)
배움 저장소

10.1 객체들의 관계 Object Relationship 객체 지향 프로그램 설계 순서 (1) 프로그램이 수행하는 기능을 정의 (2) 기능을 수행하는데 필요한 여러 객체를 정의하고 상호작용을 결정 객체의 관계 다음과 같은 특성으로 구분할 수 있다 (1) 속한다: 객체 내부의 Instance를 다른 곳에서도 사용하는가? (2) 관리: 해당 객체의 소멸을 관계있는 객체가 결정하는가? (3) 방향성: 객체가 다른 객체의 멤버변수/함수를 활용하는기? 10.2 구성 관계 Composition 다음 예제에서 class Monster와 class Position2D는 Composition(구성관계)이다 main.cpp #include "Monster.h" using namespace std; int main() {..
9.1 산술 연산자 오버로딩 하기 add 함수를 구현해보자. Parameter가 늘어날 때마다 오버로딩을 해주어야 한다 class Cents { private: int m_cents; public: Cents(int cents=0){ m_cents = cents; } int getCents() const { return m_cents; } }; Cents add(const Cents& c1, const Cents& c2){ return Cents(c1.getCents() + c2.getCents()); } int main(){ Cents wallet1(5); Cents wallet2(13); cout
8.1 객체지향 프로그래밍과 클래스 C++에서 Struct(구조체) 내부에 멤버함수를 추가할 수 있다. 하지만 Struct에는 멤버 변수만 넣음이 일반적이다 멤버함수를 추가한다면 class를 사용해주자. C는 Struct에 멤버함수 추가를 금지한다 struct Friend { string name; string address; int age; double height; double weight; void print() { cout

7.1 매개변수와 실인자의 구분(Parameter and Argument) 7.2 값에 의한 전달 Passing Arguments by value(Call by value) Call by value는 값을 복사하여 전달한다. - 아래 예제에서, main의 지역변수인 Argument 값이 복사되어 function에게 전달된다. function이 호출되면 함수의 Parameter에 복사된 값이 할당되어 초기화된다. int function(int Parameter) { return Parameter + 5; } int main() { int Argument = 1; function(Argument); } 7.3 참조에 의한 인수 전달 Passing Arguments by Reference(Call by Ref..
6.1 배열 기초 [1 of 2] array 배열 이름 뒤에 붙는 [ ]는 deferencing이다. 배열의 자료형 크기 * 해당 index 자리에 있는 값을 읽는다 c++11은 배열의 uniform initialization을 지원한다. int arr[]{ 1, 2, 3, 4, 5 }; 배열의 Index에 Enum 열거형을 사용할 수 있다 - 열거형의 마지막 변수를 COUNT로 쓰면 편리하다. enum StudentName { JACK, ALI, VIOLET, NUM_STUDENT, }; int main() { // c++ 11 allow array's uniform initialization int arr[NUM_STUDENT]{ 0, 1, 2 }; arr[JACK]; arr[ALI]; arr[VIO..
5.1 제어 흐름 개요 (Control Flow) - 프로그래밍은 CPU에게 특정 명령을 실행시킴을 말한다. - 이때 코드의 묶음을 다양한 흐름으로 실행할 수 있다. 이를 Control Flow라 하고 5가지 종류가 있다. 종류 Keyword Halt(중단) Jump(점프) goto, break, continue Conditional Branches(조건 분기) if, switch Loops(반복) while, do while, for Exceptions(예외 처리) try, catch, throw exit( ) vs return - 라이브러리에서 exit(int) 함수를 사용하여 프로그램을 긴급하게 종료시킬 수 있다. 이때 Parameter를 운영체제에게 전달하며 디버깅 용도로 사용된다. - retur..
4.1 지역 변수, 범위, 지속기간 범위(영역) Scope : 변수를 사용할 수 있는 범위 지속기간 Duration : 메모리를 할당받고 반환하기 전까지의 기간 Compound Statement(복합문) - { } 내부에 있는 코드의 모음이다. 컴파일러는 { } 내부에 있는 코드를 하나의 statement로 취급한다. 외부에서 사용된 변수명을 Compund Statement 내에 다시 정의할 수 있다 - 객체지향 프로그램에서 변수명을 object와 함께 사용하기 때문에 같은 변수명을 여러번 활용할 수 있다. - namespace를 활용해도 된다. int main() { int x = 1; cout
3.1 연산자 우선순위와 결합 법칙 연산자 Associativity(우선순위) - 연산자 우선순위는 다음을 참고하자 https://en.cppreference.com/w/cpp/language/operator_precedence C++ Operator Precedence - cppreference.com The following table lists the precedence and associativity of C++ operators. Operators are listed top to bottom, in descending precedence. ↑ The operand of sizeof can't be a C-style type cast: the expression sizeof (int) * p is..