일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 데이터베이스
- 시나공
- C++
- 1과목
- 코틀린
- softeer
- python
- CJ UNIT
- 코딩봉사
- 코딩교육봉사
- 소프티어
- 파이썬
- 백준
- 회고
- 문제풀이
- BFS
- kotlin
- 스프링
- SW봉사
- 알고리즘
- 공부일지
- SQL
- MYSQL
- 백준 알고리즘
- 백준알고리즘
- programmers
- java
- 정보처리산업기사
- 자바
- 프로그래머스
- Today
- Total
목록C++ (25)
JIE0025
상속 클래스에서의 상속은 자기자신의 멤버를 물려주는것. 멤버변수와 멤버함수 모두 물려준다. 상속해주는 클래스 : 기초, 슈퍼, 부모 클래스 상속받는 클래스 : 유도, 서브, 자식 클래스 - 부모의 모든 멤버를 자식이 물려받음 - 모든 멤버를 자식이 물려받지만 완전히 자식의 소유는 아니다. 상속 자식 클래스 : 부모 클래스 예제 코드를 보면서 이해해보자. Parent 클래스와 Parent를 상속받는 Child 클래스가 있다. #include using namespace std; class Parent { int x, y; public: Parent(const int& a, const int& b) { cout
sort()함수 #include 헤더 포함 - default 는 오름차순이다. - 정렬 조건을 주고 싶을때 함수를 만들어 함수이름 자리에 넣어주면 된다. (필수 X ) sort(시작주소, 끝주소+1, 함수이름 ) 1) 기본 배열의 sort 배열의 이름은 배열의 시작 주소값이므로 arr과 arr+ (요소의 개수) 를 단순하게 인자값으로 넣어주면 된다. #include #include using namespace std; int main() { int arr[5] = {3,7,1,9,5}; sort(arr, arr + 5); for (int i = 0; i < 5; i++) { cout
string 클래스를 숫자로 변경해주는 함수가 있다. (C++ 11부터 사용가능) 가장 많이 사용하는 string to 어쩌구는 바로 아래의 네개! stoi : string to int stof : string to float stol : string to long stod : string to double int stoi (const string &str, size_t* idx = 0 , int base = 10); const string &str : 변경할 문자열 >> 문자열 복사 비용 안들도록 &이용, 함수 내부에서 변경 불가능 하도록 const사용) size_t* idx = 0 : 숫자가 아닌부분까지 포인터를 걸러준다는 친구... >> 문자열에 숫자만 있다는 보장이 없고, 문자로 인해 숫자가 끊겨..
replace 문자열 시작위치부터 지정 길이까지 치환할 문자로 변환한다. 문자열.replace(시작위치,길이, 치환할문자열) #include #include using namespace std; int main(){ string s = "abcde" s.replace(0,3,"zzz"); // zzzde return 0; } regex_replace 문자열에서 문자를 검색해 치환하는 함수이다. regex는 정규표현식 관련 라이브러리인데 정규표현식으로 치환할 문자열을 주면 된다. #include regex_replace(문자열, regex(정규식), 치환할문자열) #include #include #include using namespace std; int main(){ string s = "hello my..
동적할당을 알기 전에 먼저 프로그램이 실행되고 동작하는 원리를 알아보자. CPU, RAM(주기억장치), HDD(하드디스크/보조기억장치), OS(운영체제) 가 있다. 1) 사용자는 OS(운영체제)를 통해 프로그램의 실행을 요청한다. 2) 하드디스크에 저장되어 있던 program의 정보를 읽어 RAM, 메모리의 프로그램 코드 영역에 올려둔다. 3) CPU는 program code를 읽어서 메모리를 관리, 명령문을 실행한다. 4) 프로그램 실행을 위한 동적메모리 할당시 Free Store 영역을 사용 (아래로 확장) 5) system 작동을 위해 CPU가 임시 정보를 스택에 저장시 Free Store 영역을 사용 (위로 확장) - 만약 Heap과 Stack메모리를 많이 사용해 Free Store영역이 없어지면..
C++ 표준 라이브러리 엔 각종 수학 함수가 있다. 한가지 주의해야할 점은 min과 max는 #include에 있고. min max는 std namespace안에 있기 때문에 사용하기 위하여 using namespace std; 를 해주어야한다!!! //서비스함수 ceil(x) : 정수 올림 floor(x) : 정수 내림 abs(x) : 절대값 min(x,y) : x, y중 최소값 반환 max(x,y) : x,y중 최대값 반환 //지수함수 pow(a,b) : a의 b제곱 (a^b) sqrt(x) : x의 제곱근(루트value) log(x) : x의 자연로그 값 반환 log10(x) : x의 상용로그 값 반환 //삼각함수 sin(radians) : 라디안 값의 사인값 반환 cos(radians) : 라디안..
멤버 함수 내에서 사용 가능한 this 라는 이름의 포인터를 사용할 수 있다. 객체 자신을 가리키는 용도이다. 예제 #include using namespace std; class SimpleClass { private: int num; public: SimpleClass(int n) : num(n) { cout num2 = m; } }; int main() { SimpleClass s2(100,200); s2.ShowData(); return 0; }
객체도 배열로 만들 수 있다는 점 씨언어는 모든것에 포인터가 있고 배열이 있는 그런느낌이다. 객체 배열 선언 ClassName arr[10]; 주의해야할 점 ❗❗ 객체 배열을 선언할때도 생성자는 호출이 되기 때문에 생성자로 인자를 전달할 수 없다. 1) 다음 형태의 생성자는 정의되어있어야한다. 2) 다른 함수 형태로 일일히 값을 초기화해줄 수는 있다. #include #include using namespace std; class TestResult { private: int myScore; int myNumber; string myName; public: TestResult() { myScore = 0; myNumber = 0; myName = "none"; } void setInfo(int score..
객체 생성 과정에서 생성자 호출이 객체의 초기화를 수월하게 하는데 만약 class A 에서 B라는 객체를 멤버로 갖고 있다면 A가 생성될 떄 B class 생성자를 통해 B객체를 초기화 할순 없을까? 멤버 이니셜라이저를 이용하면 위의 것을 할 수 있다고 한다. class Rectangle { private: Point upLeft; Point lowRight; public: Rectangle(const int& x1, const int& y1, const int& x2, const int& y2); void ShowRecInfo() const; }; Rectangle::Rectangle(const int& x1, const int& y1, const int& x2, const int& y2) : upLe..
생성자 C++은 생성자를 이용해 객체 생성과 동시에 멤버변수를 초기화 할수 있다. - 클래스 이름과 동일한 이름 - 반환형 명시 X - 오버로딩 (여러번 정의가능, but 매개변수의 개수나 형태가 달라야 한다.) class Monster{ private: int damage; string name; public: Monster(){ //생성자 } }; 기본 생성자 - class안에 별도의 생성자를 구현하지 않으면 기본생성자 default constructor 가 사용되며 멤버변수는 0이나 NULL등의 값으로 초기화 된다. 복사 생성자 다른 인스턴스의 참조를 인수로 받아 자신의 인스턴스를 초기화 하도록 함 깊은 복사 : 기존의 인스턴스와는 다른 메모리 공간에 할당 됨 >> 독립적 #include using..