본문 바로가기

c++7

[c++][씹어먹는 c++] 4.4 스타만들기(const, static) https://modoocode.com/197 주제: 생성자 초기화 리스트(initializer list) 클래스의 const, static 변수 레퍼런스 타입을 리턴하는 함수 this 포인터 const 멤버 함수 initializer list [정의] 초기화 리스트(initializer list) 는 생성자 호출과 동시에 멤버 변수들을 초기화 (생성자 이름) : var1(arg1), var2(arg2) {} [사용이유] 생성자 초기화 리스트는 생성과 초기화를 동시해 하게 된다. (1)상수나 (2)레퍼런스 들은 모두 생성과 동시에 초기화가 필요하므로 이때는 반드시 초기화리스트로. => 호출하고 대입하는것과 비교하면 좀 더 효율적임 static [정의] static 은 클래스에서 전역 변수처럼 쓰이는것으로.. 2024. 4. 22.
[c++][씹어먹는 c++] 4.3 스타만들기(복사 생성자, 소멸자) https://modoocode.com/188 씹어먹는 C++ - 모두의 코드 씹어먹는 C++ - 작성일 : 2013-01-06 이 글은 96145 번 읽혔습니다. 이번 강좌에서는복사 생성자 (copy constructor) - 깊은 복사와 얕은 modoocode.com 주제: 소멸자 (destructor) 복사 생성자 (copy constructor) - 깊은 복사와 얕은 복사 체크포인트: [특성] new 는 객체를 동적으로 생성하면서 동시에 생성자(constructor)를 자동 생성, 이후 delete 로 반드시 해제해야함. int main() { Marine* marines[100]; marines[0] = new Marine(2, 3); marines[1] = new Marine(3, 5); ma.. 2023. 10. 17.
[c++][씹어먹는 c++] 4.2 클래스의 세계 https://modoocode.com/173 씹어먹는 C++ - 모두의 코드 씹어먹는 C++ - 작성일 : 2012-08-04 이 글은 87646 번 읽혔습니다. 안녕하세요 여러분. 이제 본격적으로 객체 지 modoocode.com 주제: 생성자 (constructor) 디폴트 생성자 (default constructor) 체크포인트: [정의] 함수의 오버로딩(overloading) 같은 함수이름일지라도 함수에 선언된 입력 형태에 따라 알아서 실행하게 해 줌. [특성] 오버로딩 시 4단계에 따라 적합한 함수를 찾아가는데 이 규칙은 위 블로그 참조하기. [정의] 생성자(Constructor)는 "객체 생성 시 자동으로 호출되는 함수" 로써 객체의 초기화 역할담당. [특성] 디폴트 생성자(default c.. 2023. 10. 16.
[c++][씹어먹는 c++] 4.1 이 세상은 객체 https://modoocode.com/172 씹어먹는 C++ - 모두의 코드 씹어먹는 C++ - 작성일 : 2012-02-29 이 글은 84633 번 읽혔습니다. 이번 강좌에서는 객체 지향 프로그래밍의 도래객체란 무엇인가, 클래스란 무엇 modoocode.com 주제: 객체 지향 프로그래밍의 도래 객체란 무엇인가, 클래스란 무엇인가 접근 지시자 (public, private) 체크포인트 [정의]객체(instance)란, 변수들과 참고자료 들로 이루어진 소프트웨어 덩어리 [용어]인스턴스 변수(instance variable), 인스턴스 메소드(instance method) 용어는 객체라는 틀에서 설명됨. 아래 그림에서 animal 은 인스턴스 라고할 수 있음. [특성] 안에 설정된 변수들은 캡슐화(Enc.. 2023. 10. 16.
[c++][씹어먹는 c++]3. c++ 세계 https://modoocode.com/169 씹어먹는 C++ - 모두의 코드 씹어먹는 C++ - 작성일 : 2012-01-01 이 글은 93258 번 읽혔습니다. 안녕하세요~ 여러분. 오랜 공백기간을 뚫고 찾아온 Psi 입니다. 그동 modoocode.com 주제: c++ 에서 new와 delete를 설명하며 다음장에 소개될 객체지향의 도입 백그라운드 설명 체크포인트 컴파일 될수없는 , 미리 정의될수 없는 메모리는 heap에 저장되어 관리되고 이를 동적 메모리 할당이라 칭함 (예를 들어 컴파일 이후에 입력되는 자료갯수들). 기존 컴파일로 미리 정해진 메모리는 stack 에서 관리되어짐. c++에서는 동적 메모리할당에 new 와, delete 명령어로 컨트롤 동적 메모리할당이 필요한이유? 컴파일 이후에 .. 2023. 10. 15.
[c++/인프런] 3) 10주완성 알고리즘 c++ 출처 인프런 - 10주 완성 c++ memcpy()와 copy() 깊은 복사를 할 때 memcpy()와 copy()를 쓴다.!!( 깊은 복사(deep copy) 새로운 메모리 공간을 확보해 완전히 복사하는 것으로 복사한 배열이 수정되어도 원본에 영향 x! , 반면 얖은복사(shallow copy)는 포인터로 메모리 주소값을 복사하게 되므로 수정하면 원복이 수정됨) memcpy() : array 끼리 복사할 때 copy() : Array , vector 복사할 때 (이제 복사한다 for 루프 돌리지 말고..... copy()를 사용하자!) memcpy 구조 (목적지, 근원지, 사이즈) v 어레이는 ret어레이에 영향을 받고 선언을 ret [2]로 했을 때는 돌아가긴 함. 앞에서부터 채워짐 copy() 구조.. 2023. 4. 30.
[인프런] 3일차- 알고리즘을위한 C++ [P 62~] 이터레이터(iterator) => 컨테이너에 저장되어 있어는 요소의 주소를 가리키는 개채 (포인터를 일반화 한것으로 이터레이터는 컨테이너 범위안에 요소들을 순회하는 과정을 담당하는것으로 이해하자) 특징으로는 1) 주소값을 바로 반환하지 못하기에 &* 붙여서 반환 가능. (아... 그래서 그냥 cout 프린트할려면 에러..) 2) 값을 반환하기위해서는 * 포인터 붙여주기 또다른 방법은 == "1 2 3 4 5" 이 방법은 반드시 숙지하고 숙지해야한다. 매우 자주 쓰이는 포맷으로 인숙해지자. 함수(Function) fill() : 모든 값으로 초기화 할 수 있음 memset() : -1, 0으로만 초기화가 가능함. fill() 보다 빠르기 때문엥 시간적으로 더 최적화 할 수 있음. fill의 .. 2023. 4. 29.