일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스프링
- spring boot
- @Component
- AWS
- Nodejs
- @Autowired
- 코딩테스트
- C++
- 카카오
- 구조체배열
- 프로그래머스
- python
- 파이썬
- nestjs typeorm
- thymeleaf
- C언어
- 해시
- nestJS
- Spring
- 카카오 알고리즘
- 카카오 코테
- 컴포넌트스캔
- 가상면접사례로배우는대규모시스템설계기초
- OpenCV
- nestjs auth
- 알고리즘
- 시스템호출
- git
- 코테
- TypeORM
- Today
- Total
목록# Language & Tools/C++ (30)
공부 기록장 💻
사용자가 객체에 대한 연산자 함수를 사용하기 위해 연산자를 중복 정의하여 작성할 때, 연산자를 연속적으로 사용하기 위해서는 참조 리턴을 하도록 구현해야 한다. 다음의 Power 클래스의 두 객체 a와 b에 대한 연산을 살펴보자. a
CH 7 이론 - 연산자 중복 함수, friend 함수 CH 7 실습 CH 8 이론 - 상속 CH 8 실습 CH 9 이론 - 오버라이딩(가상 함수 재정의), 동적 바인딩, 추상 클래스 CH 9 실습 CH 10 이론 - 템플릿 / 제네릭 함수, 클래스 / 표준 템플릿 STL CH 10 실습 CH 11 이론 - C++ 입출력 - 스트림, 버퍼, 포맷, 조작자 CH 11 실습 CH 12 이론 - C++ 파일 입출력 I/O CH 12 실습
명품 C++ 프로그래밍 12장 1. #include #include using namespace std; int main(){ fstream fin("c:\\temp\\test.txt", ios::in); if(!fin){ cout
(명품 C++ 프로그래밍 CH 12) 텍스트 파일 & 바이너리 파일 파일(File): 저장 매체에 저장되는 정보 - 바이트나 블록 단위로 입출력된다. - 데이터 종류에 따라 텍스트(문자) / 바이너리(문자, 이미지 등) 파일로 나뉜다. 텍스트 파일 - 글자 혹은 문자로만 구성되는 문서 파일 - 각 글자마다 고유한 바이너리 코드(이진코드- ASCII/UNI code) 로 구성되어 있으며, 텍스트 파일엔 문자 코드만 저장됨 - ex) txt, html, xml, c/c++/java source file 텍스트 파일의 키 1) '\r' carriage return 제어 코드(ASCII코듸 0x0D(십진수 13)) - 커서를 현재 줄의 맨 앞으로 옮기도록 하는 지시 2) '\n' line feed 제어 코드 (..
명품 C++ 프로그래밍 11장 1. ch=cin.get() EOF #include using namespace std; int main(){ int ch, cnt=0; while((ch=cin.get())!=EOF){ if(ch=='\n') break; if(ch=='a') cnt++; } cout
명품 C++ 프로그래밍 9장 실습 문제 1. #include using namespace std; class Converter{ protected: double ratio; virtual double convert(double src)=0; // src를 다른 단위로 변환 virtual string getSourceString()=0; // src 단위 명칭 virtual string getDestString()=0; // dest 단위 명칭 public: Converter(double ratio){this->ratio=ratio;} void run(){ double src; cout
(명품 C++ Programming 10장) 1. #include using namespace std; template T biggest(T arr[], int n){ T big=arr[0]; for(int i=1;ibig) big=arr[i]; return big; } int main(){ int x[]={1,10,100,5,4}; cout
(명품 C++ 프로그래밍 CH. 11) C++ 표준 입출력 스트림 C++ 표준에서는 오직 스트림 입출력만 다룬다. 버퍼를 가지지 않는 저수준 입출력 방식을 다루지 않는다. 스트림(stream) - 프로그램과 장치를 연결하며 바이트 단위로 입출력 C++ 표준 입력 스트림 객체 : cin C++ 표준 출력 스트림 객체 : cout C++ 표준 오류 출력 스트림 객체 : cerr(버퍼 x), clog(버퍼 ㅇ) 버퍼(buffer) - 운영체제 API를 호출하여 입출력 장치와 프로그램 사이의 데이터 전송 전 버퍼에 모아두어 API 호출의 호출 횟수를 줄인다. cin 입력 스트림 버퍼 : 입력된 데이터를 프로그램에 전달하기 전에 일시 저장하는 공간 - 버퍼를 제어하는 제어키 - 입력되면 버퍼의 키들을 전달 cou..
(명품 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