본문 바로가기

Language&Framework&Etc/C++33

구조체 및 클래스 간단히 정리(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.
클래스의 완성(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.
클래스의 완성(04-2) 캡슐화(Encapsulation) 정보은닉, 캡슐화 → 객체지향 기반의 클래스 설계에서 가장 기본적이면서도 중요한 원칙 캡슐화의 중요성 캡슐화가 중요한 이유 #include using namespace std; class snivelcap // 콧물 처지용 캡슐 { public: void take() const { cout 2020. 12. 25.