일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 코테
- AWS
- 코딩테스트
- 카카오 알고리즘
- 파이썬
- @Autowired
- 구조체배열
- 해시
- nestJS
- 컴포넌트스캔
- TypeORM
- OpenCV
- C++
- nestjs auth
- C언어
- python
- 카카오 코테
- Spring
- spring boot
- 시스템호출
- 가상면접사례로배우는대규모시스템설계기초
- 알고리즘
- nestjs typeorm
- 프로그래머스
- thymeleaf
- 스프링
- git
- Nodejs
- 카카오
- @Component
- Today
- Total
목록# Language & Tools (54)
공부 기록장 💻
(명품 C++ 프로그래밍 Ch10) 함수 중복(function overloading) 은 편리하지만, 동일한 코드가 반복되어 중복된 함수를 여러번 정의하고 구현해내야 한다는 약점이 있다. 다음은 두 값을 서로 교환하는 myswap 함수이다. int, double 이라는 매개 변수 타입만 다르지, 알고리즘이 동일하여 동일한 코드가 반복되어 작성되었다. (swap 함수는 C++ 표준 템플릿 라이브러리에 이미 정의되어 있으므로, 이름 충돌을 피하기 위해 myswap()을 사용) // 매개변수의 타입만 다른 중복된 두 myswap 함수 void myswap(int &a, int &b){ int tmp; tmp=a; a=b; b=tmp; } void myswap(double &a, double &b){ doubl..
(명품 C++ 프로그래밍 Ch 9) 함수 재정의 (function redefine) - 함수는 파생 클래스에서 기본 클래스와 동일한 형식의 함수를 재정의하여 사용하는 것 다음과 같이 Base 기본 클래스를 상속한 파생 클래스 Derived는 Base의 멤버 함수인 f()를 재정의하여 구현하였다. class Base{ public: void f() { cout f() : "; aP->f(); coutf(); coutf(); aP = bP = cP; // 업캐스팅 cout
(명품 C++ 프로그래밍 8장) 1. #include using namespace std; class Circle{ int radius; public: Circle(int radius=0){this->radius=radius;} int getRadius(){return radius;} void setRadius(int radius){this->radius=radius;} double getArea(){ return 3.14*radius*radius;} }; class NamedCircle:public Circle{ string name; public: NamedCircle(int radius=1, string name="circle"):Circle(radius){ this->name=name; } voi..
(명품 C++ 프로그래밍 7장) Open Challenge #include #include using namespace std; class Histogram{ string str; public: Histogram(string str){ this->str=str;} Histogram& operator
( 명품 C++ 프로그래밍 Ch8 ) 상속(Inheritance)의 개념 상속 - 자식 클래스의 객체가 생성될 때, 자신의 멤버 뿐 아니라 부모 클래스의 멤버를 포함할 것을 지시 - 기본 클래스(base class) : 부모 클래스 - 파생 클래스(derived class) : 자식 클래스 다중 상속(multiple inheritance) - 여러 개의 클래스를 동시에 상속받음 상속의 목적과 장점 - 상속을 통해 코드의 중복 작성을 없애(클래스들 사이의 중복을 제거하여) 클래스를 간결하게 구현 가능하다. - 어떤 코드에 오류가 있다면, 기본 클래스의 오류 부분만 수정하면 된다. - 서로 관련된 클래스를 계층 관계로 표현함으로써, 클래스들의 구조적인 관계 파악을 쉽게 해주며 관리가 클래스/객체의 관리가 용..
(명품 C++ 프로그래밍 7장) 프렌드 함수 (Friend Function) friend 키워드 : 클래스 외부에 작성된 함수를 클래스 내에 선언하여, 클래스의 멤버함수와 동일한 접근 자격을 부여할 수 있도록 하는 키워드 friend 함수 : 클래스 내에 friend 키워드로 선언된 외부의 함수 - 멤버 함수는 아니므로, 상속되지는 않음 - 클래스의 멤버인 것처럼 클래스의 모든 변수나 함수에 접근 가능 - 프렌드 함수 개수에는 제한이 없음 프렌드 함수가 왜 사용될까? - 클래스의 멤버 함수로는 적합하지 안지만, 클래스의 private, protected 멤버를 접근해야 하는 특별한 경우 - 연산자 함수에서 대표적으로 사용됨 프렌드 함수를 선언하는 경우 3가지 1. 클래스 외부에 작성된 함수를 프렌드로 선..
(명품 C++ 프로그래밍 3장 ) 1. #include using namespace std; class Tower { int height; public: Tower():Tower(1) {} Tower(int h) { height = h; } int getHeight() { return height; } }; int main() { Tower myTower; Tower seoulTower(100); cout
(명품 C++ 프로그래밍 4장) 1. #include using namespace std; class Color { int red, blue, green; public: Color() { red = blue = green = 0; } Color(int r, int g, int b) { red = r;green = g;blue = b; } void setColor(int r,int g, int b) { red = r;green = g;blue = b; } void show(){ cout
CH2. C++ 프로그램 기본 dream-and-develop.tistory.com/41?category=938510 [C/C++] C++ 프로그래밍 기본 ( 명품 C++ 프로그래밍 ch2 ) C++ 기본 요소와 화면 출력 주석문 - // 한줄 주석 - /* 이 안의 모든 내용 주석 */ main함수 - C++의 main() 함수의 표준은 다음과 같다. (리턴타입 int형) - return 문은 생략 가능. dream-and-develop.tistory.com dream-and-develop.tistory.com/57?category=938510 [C/C++] 문자열 처리 함수 c_str(), atoi(), stoi() c_str() string 객체 -> *char atoi() *char -> int ..
배열과 배열의 크기를 입력 받아 배열의 모든 요소의 합을 더하는 add 함수이다. #include using namespace std; int add(int arr[], int size) { int sum = 0; for (int i = 0;i < size;i++) sum += arr[i]; return sum; } int add(int a[], int size, int b[]) { int sum = 0; for (int i = 0;i < size;i++) sum += a[i] + b[i]; return sum; } int add(int *arr, int size, int *arr2 = NULL) { int sum=0; for (int i = 0;i < size;i++) sum += arr[i]; if ..
명품 C++ 프로그래밍 5장 실습 #11번 main 함수로부터 포인터(문자 배열)를 입력 받아 기존의 값을 변경하는 set함수에서 포인터 매개 변수 값에 const 지정자를 붙이는 것에 의문이 들었다. void set(const char* title, int price) { //cout title; // 할당된 메모리가 있다면 반환한후 int len = strlen(title); this->title = new char[len + 1]; // 새로운 메모리 다시 할당 strcpy(this->title, title); this->price = price; } void show() { cout
(명품 C++ 프로그래밍 6장) 1. (1) #include using namespace std; int add(int* a, int size) { int sum=0; for (int i = 0;i < size;i++) sum += a[i]; return sum; } int add(int* a, int size, int* b) { return add(a, size) + add(b, size); // 반환 문장에서 두 개의 함수를 호출하여 얻은 결과 값 저장하고 리턴 } int main() { int a[] = { 1,2,3,4,5 }; int b[] = { 6,7,8,9,10 }; int c = add(a, 5); int d = add(a, 5, b); cout
( 명품 C++ 프로그래밍 Ch6 ) 함수 중복 (Function Overloading) 동일한 이름의 함수를 여러개 만들 수 있는데, 이것을 함수 중복(function overloading)이라 부른다. - 다형성을 추구하는 방법(같은 이름으로 여러가지의 형태를 정의해놓고, 각각의 기능을 수행하도록 만드는 것) int sum(int a, int b); // 1 int sum(int a, int b, int c); // 2 double sum(double a, double b); // 3 // 호출 방법 sum(2,5,33); // 2 호출 sum(12.5, 33.6); // 3 호출 sum(2,6); // 1 호출 위 예제에서는 총 3개의 동일한 이름을 가진 sum함수가 있다. 1. int형 변수 두 ..
(명품 C++ 프로그래밍 5장) 1. #include using namespace std; class Circle { int radius; public: Circle() :Circle(1) {} Circle(int r) { this->radius = r; } double getArea() { return 3.14 * radius * radius; } void setRadius(int r) { this->radius = r; } int getRadius() { return this->radius; } }; void swap(Circle &c1, Circle &c2) { Circle tmp; tmp = c1; c1 = c2; c2 = tmp; } int main() { Circle c1(5); Circle ..
(명품 C++ 프로그래밍 Ch 5) 함수의 인자 전달 방식 1. 값에 의한 호출(call by value) - 실인자 값이 함수의 매개 변수에 복사되어 전달되는 방식 - 매개 변수가 스택에 생성되고 실인자 값이 각 매개 변수에 복사되어 해당 함수가 종료되면 복사본은 사라지고 반환값만 호출한 곳에 대압 2. 주소에 의한 호출(call by address) - 주소를 직접 포인터 타입의 매개 변수에 전달하는 방식 - 주소에 접근하므로 함수 내에서 실인자의 값을 변경 가능 3. 참조에 의한 호출(call by reference) 함수 호출 시 객체 전달 값에 의한 호출과 문제점(소멸자만 실행되는 비대칭 구조) 값에 의한 호출(call by value)로 객체를 전달할 때에는, 객체가 매개 변수에 복사되어 전달..
( 명품 C++ 프로그래밍 Ch 4.1 - 4.5) 객체 포인터 객체에 대한 포인터 변수를 통해 멤버 변수를 읽고 값을 쓰고, 멤버 함수를 호출할 수 있다. 1. 객체에 대한 포인터 변수 선언 2. 객체 주소 지정과 객체 멤버 접근 주소 & 연산자를 이용해 포인터 변수에 객체의 주소를 저장한다. 객체 이름으로 멤버를 접근할 때에는 . 연산자를 사용하지만, 객체 포인터로 멤버를 접근할 때 -> 연산자를 사용한다. class Circle { int radius; public: Circle() :Circle(1){} // 기본 생성자 Circle(int r) { this->radius = r; } // 정수 매개변수를 갖고 있는 생성자 void setRadius(int r) {this->radius = r;}..
c_str() string 객체 -> *char atoi() *char -> int stoi() string 객체 -> int #include #include using namespace std; int main() { string str = "100ss"; // string str("100ss"); char s[] = "100ss"; int m = atoi(s); int n = atoi(str.c_str()); int k = stoi(str); cout
(명품 C++ 프로그래밍 ch 4.6) string 클래스 - C++ 표준 라이브러리에서 제공하는 클래스로서, 문자열을 객체로 다룬다. - 문자열을 저장하는버퍼와 함께, 문자열을 다루는 함수, 연산자를 멤버로 가지고 있다. - 문자열의 크기에 맞추어 스스로 메모리크기를 조절한다. string 클래스를 사용하기 위해선 다음 코드가 필요하다. #include using namesapce std; string 객체 생성과 문자열 입력/출력 string 객체 생성 및 출력 스트링 객체를 생성하는 몇 가지 방법이 있다. 1. 빈 문자열 2. 문자열 리터럴로 초기화 3. 다른 스트링 객체를 복사하여 생성 4. C-스트링의 char[] 배열로부터 생성 생성자 설명 예시 1. string() 빈 문자열 string s..
(명품 C++ 프로그래밍 Ch3) - 클래스를 설계하다. - 객체를 생성하고, 객체를 활용한다. - 클래스를 상속 받거나, C++ 라이브러리에서 제공하는 객체를 사용한다. 객체의 캡슐화(encapsulation) - 객체의 구성 요소들을 보호 - 일부 요소의 공개 노출: 정보를 교환하고 통신하기 위함 클래스와 객체 - 클래스(class): 객체를 정의하는 틀 멤버 변수(상태 - state) 멤버 함수(행동 - behavior) - 객체(object): 클래스라는 틀에서 프로그램실행 도중 실존하는 실체(인스턴스-instance) 클래스 생성 - class 키워드 사용하여 클래스 선언 1. 클래스 선언부(class declaration) : 클래스의 모양 정의 class 키워드와 클래스 이름으로 선언 멤버 ..
(명품 C++ 프로그래밍 ch 2.4) C++ 에서 문자열을 표현하는 방법에는 두 가지가 있다: C-스트링 / string 클래스 1. C-스트링 - NULL(0, '\0') 문자로 끝나는 char 배열 - #include - #include - C언어에서 사용하는 문자열 방식. C언어와의 호환성 때문에 그대로 사용하는 방법 - cin >> 연산자 이용 시 주의점 : 공백 문자를 만나면 이전 문자열만 하나의 문자열로 인식 - cin 객체의 getline() 멤버 함수 이용하여 공백이포함된 문자열 입력 받기 cin.getline(char buf[], int size, char delimitChar) - buf: 키보드로부터 읽은 문자열을 저장할 배열 이름 - size: buf[] 배열의 크기 - delim..