14:30 really necessary?
239
작성한 질문수 57
14:30 경에 교수님은 Autoptr(Autoptr &&a)
Autoptr & operator=(Autoptr&&a)
에서
a.m_ptr 이really necessary 한지 여부를 따지고 계신데요,
교수님의 결론은 굳이 안써줘도 된다 였습니다.
그런데 저는 이해가 안됍니다 .
a.m_ptr=null ptr; 이없다면 , 소유권이전이 안돼는 (move semantics가 안돼는) 것 아닌가 싶네요 .
따라서 main.cpp에서 generateResource() 가 종료되며 Autoptr res 객체가 소멸되며 ~Autoptr이 작동해 (a.)m_ptr이 해제되어 프로그램의 출력결과도
Autoptr default constructor
Resource length constructed
Autroptr default constructor
Autoptr move assignment
Resource destructed
Autoptr destructor
에러 ( 이미 지운메모리 영역을 다시 지우려함 )
위와 같이 되야하는것 아닌가 싶네요 .
또한 위의 질문과는 별개로 ,
Autoptr(Autoptr &&a)
Autoptr & operator=(Autoptr&&a) 을 구현할때 왜 굳이
R-Value reference (&&)을 사용하신건지 궁금합니다.
l-value reference(&) 와 r-value refernce 가 분명히 정의상 차이는 있다만 여기서는 굳이 기능상 차이가 있나 싶거든요.
그냥 l-value reference(&) 로 받아
Autoptr(Autoptr &a)
Autoptr & operator=(Autoptr&a)
으로 했어도 결과는 똑같은것 같은데 ... 어떻게 생각하시나요?
답변 2
3
1. 강의에서 nullptr을 넣을 것을 권장하고 있는데 실제로 빼면 문제가 발생하네요. 이유는 생각하시는 것이 맞습니다.
2. 결과는 똑같습니다. 그렇지만 그런 관점이 아닌 copy와 move에 대해서 생각해보시고, 컴파일러가 둘의 오버로딩을 구분해준다는 점을 알고 계셨으면 좋겠네요.
변수가 메모리에 저장되는 것을 알려주는 강의가 어떤강의였죠
1
465
1
메모리 주소 10진수로 출력
1
653
1
클래스 템플릿 특수화에서 boolalpha로 표현된 리턴값에 대해 질문이 있습니다.
1
498
1
여러가지 리턴 타입에 관한 강의가 어떤 걸까요?
1
534
1
메모리 주소에 관한 질분
0
679
1
인터페이스 클래스에서 reportError의 매개변수에 대해 궁금한 것이 있습니다.
0
549
1
형변환 오버로딩에서 const 관련 질문이 있습니다.
0
443
1
Digit 뒤에 reference를 사용하는 이유
0
510
1
4.2 전역 변수, 정적 변수, 내부 연결, 외부 연결
0
322
1
dat파일이...
0
538
1
TODO:대입 연산자 오버로딩에 대한 소스코드입니다.
0
643
1
복사 생성자 관련 질문이 있습니다.
0
454
1
수업 중 궁금한점이 있습니다.
1
389
1
라이브러리자체가 이해가 되지 않습니다.
0
561
1
마지막 예제 질문
0
302
1
증감연산자 위치에 따른 수행 순서 질문입니다.
0
374
1
단항 연산자 오버로딩에서 return 부분에 질문이 있습니다.
1
410
1
friend함수 관련 질문이 있습니다.
0
311
1
operator+ 정의부분에서 궁금한 것이 있습니다.
0
447
1
3분 17초 질문
0
350
1
함수에 값을 대입한다는 개념이 이해가 되지 않습니다.
0
447
1
int getvalue() const에서 const는 왜 뒤에 붙는건가요?
0
443
2
const Something &st에서 const를 빼면 안되나요?
0
300
1
friend함수는 다른 클래스의 멤버함수로 쓸 수 없나요??
1
492
1





