반응형 Language17 08.생성자와 소멸자 생성자 (Constructors) 특수한 멤버 함수 객체가 생성될 때 자동으로 호출됨 초기화 목적으로 유용하게 사용됨 클래스와 동일한 이름을 갖는 멤버 함수 반환형은 존재하지 않음 오버로딩 가능 class Player{ public: Player(); Player(std::string name); Player(std::string name, int health, int xp); //생성자들 반환형이 없고, 함수 이름이 클래스 이름과 동일함 private: std::string name; int health; int xp; }; 소멸자 (Destructor) 특수한 멤버 함수 객체가 소멸할 때 자동으로 호출됨 메모리 및 기타 리소스(파일 close등) 해제 목적으로 유용하게 사용됨 클래스와 동일한 이름 앞.. 2023. 12. 22. 07.OOP 절차적 프로그래밍 (Procedural Programing) 프로그램이 수행하는 일련의 작업을 기준으로하는 프로그래밍 패러다임 작업의 구현 = 함수 / 함수의 집합 = 프로그램 데이터와 작업이 분리되어 있는 개념 데이터는 작업의 실행을 위해 매개변수로 전달될 뿐 이해가 쉬운 방식 절차적 프로그래밍의 단점 함수 데이터의 구조를 정확히 알아야 함 → 데이터가 변하면, 함수의 수정이 필요 → Tightly coupled 프로그램의 규모가 커지면 → 이해하기 어렵고 → 유지 /보수하기 어렵고 → 확장하기 어렵고 → 디버깅하기 어렵고 → 코드를 재사용하기 어렵고 → 오동작할 확률이 커진다. 객체지향 프로그래밍(Object Oriented Programming) 절차적 프로그래밍의 단점을 극복하기 위해 제안된 프로.. 2023. 12. 22. 06.참조자 참조자 (Reference) 변수의 별명 참조자는 (새로운) 변수가 아님 선언과 동시에 초기화가 되어야 함(Null일 수 없다) 한번 초기화되면, 다른 변수의 참조자가 될 수 없다. const pointer이면서, 사용시 자동으로 역참조를 수행하는 개념 → 포인터의 간단하고 편리한 버전으로 생각 함수의 매개변수로 자주 사용 int&, float&등 변수 정의시에 &를 붙인 타입을 사용 포인터와 마찬가지로, 동일한 타입에 대해서만 참조자 생성 가능 참조자를 사용할 때는 마침 a인 것처럼 그냥 사용(*, & 없음) int main() { int a = 10; int& b = a; b = 20; // 사용할 때는 그냥 사용 cout 2023. 12. 22. 05.포인터 포인터 스택 메모리는 빠르지만 작다. 메모리가 자동으로 정리(해제) 된다. 힙 메모리는 크지만 느림. 메모리를 직접 해제해주어야 한다. Stack vs Heap Stack very fast access don’t have to explicitly de-allocate variables space is managed efficiently by CPU, memory will not become fragmented local variables only limit on stack size(OS-dependent) variables cannot be resized Heap variables can be accessed globally no limit on memory size (relatively) slower .. 2023. 12. 22. 이전 1 2 3 4 5 다음 반응형