Language&Framework&Etc112 구조체 및 클래스 간단히 정리(C와 C++) 구조체의 탄생 이유 관련 있는 데이터를 한꺼번에 묶으면, 관리 및 사용이 용이함 (ex, 캐릭터 생성, 자동차 제조, 빵 제조 등등..) 구조체 C언어 구조체 변수 선언 struct Bread sickbbang; struct Bread soboru; 만약 struct를 생략하고 싶을 때, 구조체에 typedef를 붙여 아래와 같이 정의해야 한다. typedef struct bread { ... ... }Bread; 그럼 아래와 같이 선언 가능 Bread sickbbang; Bread soboru; C++ 구조체 변수 선언 typedef 선언 없이도 아래과 같이 변수 선언 가능 struct bread { ... ... }; bread sickbbang; bread soboru; C++ 함수가 구조체 안에 .. 2021. 1. 9. 클래스의 완성(04-3) 생성자(Constructor)와 소멸자(Destructor)-2 멤버 이니셜라이저(Member Initializer)를 이용한 변수 및 const 상수(변수) 초기화 멤버 이니셜라이저는 객체가 아닌 멤버의 초기화에도 사용할 수 있다. class simple { private: int num1; int num2; public: simple(int n1, int n2) : num1(n1) // 멤버변수 initializer { num2 = n2; } .... }; 위 클래스에서 보이듯이 객체가 아닌 멤버면수도 이니셜라이저를 통해서 초기화가 가능하다. num1(n1) 위 문장은 num1을 n1의 값으로 초기화하라는 뜻. 따라서 프로그래머는 [생성자의 몸체에서 초기화하는 방법]과 [이니셜라이저를 이용하는 초기화 방법] 중에서 선택이 가능하다. 그러나 일반적으로 멤버변수의 초.. 2020. 12. 28. 포인터 연습용 #include void swap(int*, int*); void func_point(int, int); int main(void) { /* 단순한 형태의 포인터 */ /* int a = 0; int* pa = &a; int** ppa = &pa; printf("a : %d \n", a); printf("&a : %p \n\n", &a); printf("pa : %p \n", pa); // 포인터 변수 pa에 저장된 주소 값 => &a printf("*pa : %d \n", *pa); // 포인터 변수 pa에 저장된 주소에 접근하여 그 주소가 가리키는 값을 가져와라 printf("&pa : %p \n\n", &pa); // 포인터 변수 pa의 주소 값 printf("ppa : %p \n", ppa); /.. 2020. 12. 28. 클래스의 완성(04-3) 생성자(Constructor)와 소멸자(Destructor)-1 지금까지는 객체를 생성하고 객체의 멤버변수 초기화를 목적으로 init라는 이름의 함수를 정의하고 호출했다. 정보은닉을 목적으로 멤버변수들을 private으로 선언했으니 이는 어쩔 수 없는 일 그러나 이는 불편한 부분이 있어 '생성자'라는 것을 이용하면 객체도 생성과 동시에 초기화 할 수 있다. 생성자의 이해 클래스 정의 예제 class simpleclass { private: int num; public: simpleclass(int n) // 생성자(constructor) { num = n; } int getnum() const { return num; } }; 위의 클래스 정의에서 다음의 형태를 띠는 함수 클래스의 이름과 함수의 이름이 동일 반환형이 선언되어 있지 않으며, 실제로 반환하지 않는다. 이.. 2020. 12. 25. 이전 1 ··· 6 7 8 9 10 11 12 ··· 28 다음