어떤 프로그래밍 책(제목이 기억이 안난다 나중에 찾아서 수정하자) 에서 list를 순회할 때 처음 보는 방법으로 탐색하는 것을 보았다. iterator를 사용하는 것이 아니라 그냥 해당 list 자료형 포인터를 사용해서 탐색하는 방법이 굉장히 좋아보였다. std::list std::list intList; 기존 방법 for(std::list::iterator it = intList.begin(); it != intList.end(); it++){(*it)->add(1);} 향상된 for문을 이용한 탐색 for (int *it : intList){it->add(1);} for each문을 이용한 탐색 for each(int* i in intList){ i->add(1);} 향상된 for문을 사용하는 방법과..
함수 포인터란?함수를 가리키는 포인터 장점함수를 generic하게 사용할 수 있다.단점코드의 가독성을 떨어뜨릴 가능성이 있다. 문법반환형 (*사용할 이름)(매개변수1, 매개변수2, ...); 예제int add(int a, int b); int main(){ int (*func)(int,int); // 함수 포인터 int result; func = add; result = func(3,4); cout
클래스 전방선언이란?헤더파일에서 헤더파일을 포함시키는 행위가 컴파일 시간을 증가시키기 때문에 이를 막기 위해 포인터 객체를 선언할 때에는 클래스 선언 전에 필요한 클래스를 명시하여 헤더파일의 중복을 막을 수 있다. 방법ObjectA.h ObjectA.cpp ObjectB.h ObjectB.cpp로 구성되어 있다고 가정할 때 ObjectB 클래스에서 ObjectA가 필요하다면// ObjectB.h // #include "ObjectA.h" // 생략 가능 class ObjectA;class ObjectB{private:ObjectA *objA;// ObjectA objA; // 불가능...단 헤더파일을 포함하지 않아, 클래스에 대한 정보가 없기 때문에 포인터 객체만 사용 가능하다.
맴버 이니셜라이저란?- 생성자가 실행되기 전에 먼저 실행되는 명령class A{private:int a;int b;public:A():a(10){ // 생성과 동시에 초기화b = 20; // 생성이 된 후 초기대입}}; 기능 1. const 맴버변수 & 레퍼런스 변수 초기화class B{private:int a;const int b;int& c;public:B():a(10), b(20), c(a){ // 초기화}}; 2. 부모 클래스의 생성자 호출- 상속 관계인 클래스의 생성 순서는 부모->자식 순서로 되야한다class A{public:A(int a){}};class B : public A{public:B():A(5){ // B의 생성자가 실행되기 전에 A의 생성자 호출}};
- Total
- Today
- Yesterday
- DesignPattern
- winsock
- game
- 수학
- ue4
- Spring
- 국내여행
- mongoDB
- C/C++
- 자료구조
- Java
- C
- machine learing
- 알고리즘
- Git
- ios
- swift
- C++
- JSP
- 드라마
- Cocos2d-x
- rxswift
- 운영체제
- database
- SOCKET
- scala
- OS
- 데이터베이스
- SHADER
- SwiftUI
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |