게시글
고민있어요
2022.05.23 20:17
어우 가끔 말씀이 너무 빠르십니다.
- 0
- 1
- 220
질문&답변
2020.06.17
11:49 경에
즉, 강사님의 의도는 멤버함수는 하나가 정의되어 있고 그것에 인스턴스의 주소를 전달하여 사용한다. -> 그 예로 함수포인터 사용 시 (instance.*fptr1)() 처럼 인스턴스의 주소를 전달해줘야한다. -> static으로 정적함수를 만들면 각 인스턴스의 주소를 전달해 주지 않아도 된다. -> 그 예로 (*fptr2)() 처럼 instance의 주소를 전달해주지 않는 형태(일반함수의 함수포인터)로 사용이 가능하다. 라고 저는 이해했습니다. 복잡한 만큼 제가 이해한 것을 풀어서 적어보았으며 저도 학습자인만큼 확신이 없으므로 맹신하지 않아주셨으면 합니다 ㅠ
- 2
- 5
- 273
질문&답변
2020.06.17
11:49 경에
찾아본 바, c에서는 밑의 경우 처럼 * 없이 사용이 가능했지만, c++일 경우 s1.fptr() 로 사용하였을 시 멤버함수를 호출하겠다는 의미가 되어 오류가 발생한다고 합니다. 그렇기 때문에 *를 생략하지 않고 붙여준다는군요. 즉, 밑의 경우 fptr2() 의 경우가 특별한 경우이며 편의를 위해 생략된 것이었습니다. 함수포인터 그대로 (*fptr2)() 인 것을 편의를 위해 생략한 것이었네요(static이기 때문에 인스턴스의 주소를 전달하지 않으므로 가능).
- 2
- 5
- 273
질문&답변
2020.06.17
11:49 경에
질문자님의 질문 의도는 '연결'이라는 의미는 알지만 *의 역할을 궁금해 하시는 것 같네요. 밑의 경우는 *를 쓰지않았으니까요. .*이 연결이라고 정해져 있다면 어쩔 수 없는 경우지만요. 물론 저도 몰라서 질문 뒤적뒤적 보고 있는 처지구요 ㅠㅠ
- 2
- 5
- 273
질문&답변
2020.06.17
static 멤버변수에서 인스턴스에서 값을 변경하면 멤버변수가 인스턴스에 끼치는 영향
동적으로 인스턴스 생성 시 변수를 생성하는 것이 아니라, static일 경우 정적으로 변수를 생성하게 해주는 기능을 하기 때문인 것 같습니다. 제가 이해한 대로 예를 들자면, class 주민등록증 { static string 발급국가; string 주민등록번호; } string 주민등록증 ::발급국가 = "대한민국"; 이렇게 있을 때 주민등록증 인스턴스를 만들 때 마다 발급국가 멤버변수를 동적으로 생성하는 것이 아니라, 발급국가를 static으로 정적변수화 시켜 하나의 변수로 다루겠다는 의미라고 생각합니다.
- 1
- 3
- 349
질문&답변
2020.06.17
something.getValue()=10에 관련된 질문
getValue의 반환형을 보시면 레퍼런스 반환형입니다.그러므로 '값을 바꾼다'고 생각하시면 됩니다. 물론 해당 m_value는 this->가 감추어져 있기 때문에 something 인스턴스의 멤버변수 m_value 이고요.
- 3
- 2
- 230
질문&답변
2020.06.17
const의 위치에 대해 질문이 있습니다!
(1)은 반환값이 const이기 때문에 값 자체로 사용할 때 사용하고 (2)는 const 함수로, 함수 내에서 멤버변수를 변화시키지 않는다는 의미에요.
- 3
- 2
- 675
질문&답변
2020.06.16
이니셜라이져를 쓰는 이유는 코드를 줄이기 위한건가요 ?
생성자는 할당과 좀 다르다고 알고 있어요. int a; a = 1; 와 int a = 1; 이 미묘한 차이가 다른 것에 관련되어 각각의 역할을 한다고 하네요 ㅎㅎ
- 2
- 2
- 289
질문&답변
2020.06.16
void setDate()에서 질문이 있습니다.
const는 변치않도록 제약을 걸어줘요. &는 레퍼런스로 이곳에서 레퍼런스로 사용되었으며 복사하지않고 바로 접근하여 값을 사용하게 해줘요(parameter에 인자값을 복사하여 사용하거든요) 즉 복사하는 오버헤드를 없애고 실수로인한 변화를 없애기 위해 const와 &를 사용해요.
- 0
- 2
- 255
질문&답변
2020.06.16
va_list
딱히 아무런 내용 없이 소개만 하는 강의 내용이었네욤.
- 0
- 3
- 329