본문 바로가기

예전/C, C++

(39)
배열 포인터, 포인터 배열 배열 포인터, 포인터 배열이건 아무리봐도 헷갈려 미추어버리겠어 - 포인터 배열 : 포인터들을 집합으로 하는 배열 ( 배열 속성 ) int *p[3]; 은 이렇게 생겼다.위 식은 int 형 포인터 3개를 저장할 수 있는 배열의 의미한다. #include int main(void) { char* str[3] = {"aaaa","bbbb","cccc"}; printf("%s %s %s\n",str[0],str[1],str[2]); return 0; } 포인터 배열은 "포인터를 배열로 묶어둔 것" 으로 포인터를 배열의 용도로 쓸 때 사용한다. - 배열 포인터 : 배열을 가리키는 포인터 (주소) int (*p)[3]; 위 식은 열의 크기가 3인 2차원 배열의 시작 주소를 가리키는 포인터 하나를 의미한다. 포인터 ..
[C/C++] 템플릿 템플릿 오버로딩을 활용하기 위한 것으로 기능은 결정되어 있으나 자료형이 정해지지 않은 것이다. 템플릿이란 말 그대로 무엇을 만들기위해 찍어내는 틀이다. 템플릿은 크게 함수 템플릿과 클래스 템플릿으로 나눌 수 있다.함수 템플릿은 간단히 말하면 함수를 찍어내는 틀을 말하고, 클래스 템플릿은 클래스를 찍어내는 틀을 말한다.
[C++] 스마트 포인터 스마트 포인터란? 다른 객체의 포인터 역할을 하는 객체이다.객체가 소멸될 때 소멸자를 이용해 동적 메모리를 삭제한다. 스마트 포인터를 사용하면 생성과 소멸 작업을 조절할 수 있고, 복사와 대입 동작을 조절할 수 있다. 스마트 포인터는 어떤 동적 할당된 객체를 가리키고 있다가 스마트 포인터로 만들 때에가리킬 객체의 포인터로 초기화한다.
라이브러리 하다가 라이브러리 하다가 난 에러 http://diefish.egloos.com/10467835 LNK4099 pdb가 뭐안된다 해서 위 블로그로 해결 잇힝 - [미소나중에읽어보기] http://www.gpgstudy.com/forum/viewtopic.php?p=91716 이게 내가 링킹에러가 생긴 이유가 종속성 안해주고 프로젝트 건들여서 ..
[C/C++] 캡슐화와 은닉화 객체 지향 프로그래밍에서 캡슐화란 관련된 정보를 틀안에 담는 것으로 객체의 기능중 일부를 그 객체로 부터 분리하여 다른 객체로 새롭게 구성하는 것이라고도 말할 수 있다. 객체 지향에 따르면 변하는 기능은 분리해 따로 캡슐화 한다. 객체는 자신의 인터페이스만을 통해 일을 수행한다. 다른 객체는 그 객체가 일을 어떻게 수행하는지에 대해서는 알 필요가 없고, 알지도 못한다. class cSum { private: int x; int y; int nValue; public: inlinevoidSetX(int x){this->x = x;} inlineintGetX(void){return x;} inlinevoidSetY(int y){this->y = y;} inlineintGetY(void){return y;} ..
[C/C++] 레퍼런스 레퍼런스는 어떤 변수의 별명으로 int a = 10; int& b = a; 생성할때 반드시 초기화 해야한다. 레퍼런스 b의 값을 바꿀 수는 있으나 처음 정의한 것 외에 다른 변수를 참조하게 할 순 없다.두 변수는 같은 주소를 공유하기 때문이다. 예를 들어, int a = 10; int& b = a; int c = 30; b = 20; // 이것은 가능 b = c; // 이것은 불가능 레퍼런스 b의 값을 바꾸는 것은 가능하지만, 가리키는 대상을 바꿀 수는 없다는 것이다. 레퍼런스 앞에 const가 붙었다면, int a = 10; const int& b = a; 레퍼런스 b가 상수화 되어 b의 값을 바꾸는 것이 불가능하다. 하지만 a는 상수화 되지 않았으므로 값 변경이 가능하다. 같은 주소를 사용함에도 불구..
[C/C++] const 키워드 함수에 붙어있는 const const int Func(const int* arr) const; 아 이게뭐야 하실지 모르겠지만 ... 저도 그러고있습니다. 이게뭐야!const입니다. const가 어디에 붙어있는가에 따라 함수의 특징이 달라지는데요, 하나씩 알아볼게요 ! 1. void Func(const int& nNum); 첫 번째는 매개변수에 붙어있는 const 입니다. 그 전에 파라미터의 종류에 대해 알아보겠습니다.파라미터는 사용 목적에 따라 in-parameter와 out-parameter로 나뉘는데요 in-parameter란, #include using namespace std; void Output(int nNum) { cout
[C/C++] void* 간단한 void* (추후 보강 예정) void 란, '~이 하나도 없는' 이라는 뜻으로 void*는 자료형이 없는 포인터 변수라는 뜻입니다.즉, 자료형에 제약을 받지 않고, 어떤 자료형의 주소라도 저장할 수 있는 포인터 변수입니다. (코드) #include int main(void) { charstr= 'a'; doubledPi= 3.141592; void* vpTest= NULL; vpTest = &str; printf("vpTest의 주소 값 : %x\n", vpTest); printf("vpTest의 값 : %c\n",*vpTest);// error vpTest = &dPi; printf("vpTest의 주소 값 : %x\n", vpTest); printf("vpTest의 값 : %lf\n",*vp..