[C++/Syntax] Class 3

Const와 Friend와 Static Class에선 private를 다른 class에서 사용하게하고 싶을 때 friend를 써서 사용이 가능하게할 수 있다. 또한 static, const 또한 class 자체에 혹은 class 변수, 함수등에 사용될 때 그 쓰임에 대해 알아보자. Const class Person { private: char name[10]; int pox, poy; friend class Trip; public: Person(const char name[], int pox, int poy) { strcpy(this->name, …

[C++/Syntax] Class 2

Con(De)structor/생성(소멸)자 Copy-constructor/복사 생성자 C++의 Class는 접근제어 뿐 아니라 여러가지 기능을 지원한다. 생성자 생성자는 Class와 동일한 이름을 가지고 객체가 생성될 때 호출된다. Class 첫번째 글에 Code 2-1를 살짝 수정해보자. class Person { private: char name[10]; int pox, poy; public: Person(const char name[], int pox, int poy) { strcpy(this->name, name); this->pox = pox; this->poy = poy; } …

[C++/Syntax] inline 함수

인라인 함수 인라인 함수는 #define (매크로 함수)의 확장판 같은 느낌이다. 즉, 컴파일 중에 해당 내용이 처리 된다는 뜻이다. 하지만 define 보다 훨씬 “함수”처럼 사용할 수 있다는 점이 다르다. 매크로 함수 매크로 함수는 #define SQUARE(x) ((x)*(x))와 같이 쓰이며, 컴파일 되면서 SQUARE(5)가 ((5)*(5)) 바뀌는 방식으로 사용된다. 하지만 매크로 함수는 정의가 어려우며, 복잡한 함수를 매크로의 형태로 정의하는 것은 한계가 …

[C++/Syntax] Class ( Struct와 다른점 )

C++에서의 구조체 (Struct) C++에선 구초제 안에 함수를 사용할 수 있어서, class와 struct(구조체) 사이에 차이점을 알기 어렵다. 하지만 C++에서의 구초제와 class 의 차이점은 초기화(initialize) 방식이 다르고 public과 private 등을 사용여부에 따라 구분할 수 있다. C++ 에선 struct(구조체)안에 함수를 선언 할 수 있다. 이를 이용해 Person 구조체를 선언해 사용해보자. struct Person { char name[10]; int pox, poy; …

[C++/Syntax] New/Delete (Ref Tip)

New / Delete 동적 할당 기존의 malloc, calloc 과 같은 힙에 동적으로 할당할 수 있는 문법이다. C++에서 추가된 Class에 대한 개념을 사용할 때 Class를 동적으로 할당 하기 위해선 New/Delete를 써야한다. char *MakeStr(int len) { char *str = (char*)malloc(len*sizeof(char)); return str; } int main() { char *str = MakeStr(20); strcpy(str,”Test”); std::cout << str << std::endl; free(str); …

[C++/Syntax] Reference & Const

참조(reference)와 상수(const) 정리 C++공부 중 참조와 상수에서 이해가 힘들었던 내용을 적는다. Base (건너 띄어도됨) 변수를 선언할 때 대강 아래와 같은 구조를 가지고있다. [const/static ..]  [자료형]  [&/* ..]  [변수명] = [임시변수에 들어간 상수 데이터] 이를 해석할 땐,  [임시변수에 들어간 상수 데이터] 를 [const/static ..] 으로 설정된 [자료형]을 가지는 [&/*](참조/포인터) 변수 [변수명]을 선언 한다. 이렇게 해석하면 된다. 이런식으로 작성한 이유가 해당 순서에 [변수명]을 …