소개
게시글
질문&답변
2019.12.01
정적 바인딩과 동적 바인딩 차이가 이해가 안됩니다.
감사합니다 많은 도움이 되었습니다. 링크도 참고하겠습니다.
- 5
- 3
- 486
질문&답변
2019.11.24
교수님 질문있습니다.
감사합니다 열심히 수강하겠습니다!
- 1
- 4
- 134
질문&답변
2019.11.23
교수님 질문있습니다.
int a = 3; int &b = a; 위와 같은 경우 a라는 변수에 reference를 달아줄경우 a변수에 할당된 메모리공간에 b라는 참조자를 달아주는 것으로 알고 있는데, getValue()를 했을 경우에 참조자를 리턴하면, 그걸 또 다른곳에 담아줘야 사용할 수 있는 것 아닌가요? 바로 10대입해주면 들어갈 메모리 공간이없지 않나요? something.getValue() = 10을 한것이 c++에서 자동으로 string someVal = something.getValue(); //혹은 string& someVal = something.getValue(); someVal = 10; 으로 해준다면 모를까, 저대로면 다른 언어에서는 불가능한 작업아닌가요?
- 1
- 4
- 134
질문&답변
2019.11.23
안녕하세요 질문입니다.
저도 고민해봤는데 사실 멤버변수 초기화는 굳이 참조자로 하는 이유를 잘 모르겠습니다. 위에서 질문드린대로 일관성을 위해서라면 납득가능하니다만.. 예를들어 어떤 값을 리턴해주는 함수의 파라미터로 참조자를 넣어주는것은 call by value를 할때 그 값을 리턴해줘야해서 그걸 또 받아서 사용해야한다는 불편함이 있기때문에 참조자를 사용할 수도 있겠구나 싶은데, 위의 예제에서는 단순히 멤버변수를 초기화할때 참조자를 사용할 경우에는 이점을 찾지못하겠습니다. 오픈소스가 그렇게 한다는건 그만한 이유가 있을텐데 그건 예시마다 다른거고, 분명 이점이 있기때문에 사용할텐데 저 위의 예제처럼 멤버변수 초기화에 사용된느 참조자를 사용해서 어떤 이점이 있는지는 잘 모르겠네요. 단순히 오픈소스가 그렇게한다고해서 따라하고 싶지는 않습니다. 그리고 이어진 강의에서 교수님께서 생성자로 멤버변수 초기화할때 참조자로 안받고 그냥 원시값으로 받아서 하시는 경우가 있습니다. 그래서 더 헷갈리는 것 같네요. 충분히 고민해보고 질문드립니다. ---------- 내용추가//// 교수님 계속 그냥 강의보다가 문득드는생각인데, 참조자 사용하면 복사가안되니까 그냥 그만큼 메모리를 아낀다는 관점에서 장점이 있는 것 같은 생각이 드네요.. 맞는지 조심스레 여쭤봅니다 그리고 고민결과 그냥 참조자가 아닌 const참조자를 쓰는이유는 사실 참조자말고 포인터를 써도되는데 참조자를 쓰면 함수 호출문장만 보고 얘가 변하는 지 안변하는지 모르니까 그걸 막아주려고 썻다고 생각했습니다. 만약 이게 맞으면 사실 크기가작은 값들은 굳이 복사해도 메모리를 별로안잡어먹으니까 상관없을 것 같긴한데 그래도 그냥 통일성있게 쓰면 좋을 것 같다는 생각이 드네요. 제가 생각하고있는걸 주저리주저리 써봤습니다. 감사합니다.
- 2
- 3
- 96