연산자 오버로딩 코드 위치
글쓴이: aksen123 / 작성시간: 금, 2019/01/25 - 1:48오후
이번에 Tensorflow 관련 코드를 읽게 되었습니다.
위 코드에서 lr() 을 보니,
grad * lr()
연산에서 * 연산자는 연산자 오버로딩을 했을 수 밖에 없다고 생각합니다.
그런데 * 연산자를 오버로딩한
operator* ()
메소드가 어디에 구현되어 있는지 잘 모르겠습니다.
인스턴스 grad 의 클래스인 ConstFlat 코드를 보면 나올꺼 같은데도, 연산자 오버로딩을 오버라이딩 했는지 못 찾고 있습니다.
당장은 거의 모든 operator* 메소드에 cout 을 추가하는 방법으로 (...) 찾고는 있는데 아직까지 못찾았습니다.
그렇다고 gdb 로 디버깅 해보려고 생각은 하는데, 과연 연산자에서 연산자 오버로딩으로 step 이 넘어갈지 모르겠습니다.
다시 정리해서,
1. grad * lr() 의 * 연산자는 연산자 오버로딩을 했을까?
2. 인스턴스 grad 에 관련되 클래스 ConstFlat 에 operator* 가 없다면, 부모 클래스로부터 오버라이딩 한 것일까?
3. gdb 디버거로 연산자 오버로딩한 위치를 찾을 수 있을까?
입니다.
다른 분들의 고견을 듣고 싶습니다.
File attachments:
첨부 | 파일 크기 |
---|---|
![]() | 32.17 KB |
Forums:
댓글 달기