C++(2)
-
복사 생성자와 소멸자
c++에서 동적 할당을 하려면 new, delete가 있어야한다고 했다. 그런데 클래스에서 동적할당을 하고 있는 것이 있다면 (ex 생성자에서) delete를 해주어야 하는데 해줄 수가 없다. 이것들은 delete로 꼭 해제를 해주어야 하는데 그것을 소멸자에서 해준다. classname::~classname() { if(this->dynamicValue != NULL) { delete dynamicValue; //if dynamicValue is array delete[] dynamicValue } } 소멸자는 객체가 사라질 때 호출된다. 복사 생성자는 객체 a가 있을 때 다른 객체에서 객체 a를 상수 레퍼런스로 받아오는 것이다. 복사 생성자의 문제는 원본 객체에서 동적 할당 받은 변수가 소멸자에 의해 ..
2023.07.15 -
explicit 키워드, mutable 키워드
c++ - C++의 explicit 키워드는 뭘 하는 건가요? | 프로그래머스 커뮤니티 (programmers.co.kr) C++의 explicit 키워드는 뭘 하는 건가요? 제가 인터넷을 돌아다니다가 어떤 답변에서 밑에 C++ 코드를 봤는데 이 explicit은 무슨 일을 해주는 건가요? 소스코드 class String { public: explicit String (int n); //allocate n bytes String(const char *p); // initializ qna.programmers.co.kr 형변환을 모두 명시적으로 해주도록 하는 것이다. mutable 키워드 const 함수는 멤버변수의 값들을 바꿀 수 없다고 배웠는데, 멤버변수를 mutable로 선언하였다면 const 함수에..
2023.07.11