두 코드의 차이점은 무엇입니까? 첫 번째 경우에 메모리 누수가 있습니까? 그래서 books
어레이로서 할당된다소멸자 문제
더 소멸자
class Library
{
private:
Book books[50];
int index;
public:
Library()
{
index=0;
}
};
정의하거나 소멸 상기 제 2 하나
delete[] books;
이어야
class Library
{
private:
Book *books;
int index;
public:
Library()
{
books=new Book[50];
index=0;
}
~Library()
{
delete books;
}
};
두 번째 UB 있습니다. 첫 번째 메모리 누수가 없습니다. 두 번째 규칙은 3/5의 규칙을 도입합니다. – chris
나는 초보자이며, UB가 무엇을 의미하는지, 규칙 3/5인지 모르겠다. – laura
"규칙 3+ C++"은 쉽게 검색 될 수있다. UB는 "정의되지 않은 동작"을 의미한다. 당신이하는 일에 대한 응답으로 집을 폭파시키는 것은 표준을 준수 할 것입니다. – Yakk