모바일 오유 바로가기
http://m.todayhumor.co.kr
분류 게시판
베스트
  • 베스트오브베스트
  • 베스트
  • 오늘의베스트
  • 유머
  • 유머자료
  • 유머글
  • 이야기
  • 자유
  • 고민
  • 연애
  • 결혼생활
  • 좋은글
  • 자랑
  • 공포
  • 멘붕
  • 사이다
  • 군대
  • 밀리터리
  • 미스터리
  • 술한잔
  • 오늘있잖아요
  • 투표인증
  • 새해
  • 이슈
  • 시사
  • 시사아카이브
  • 사회면
  • 사건사고
  • 생활
  • 패션
  • 패션착샷
  • 아동패션착샷
  • 뷰티
  • 인테리어
  • DIY
  • 요리
  • 커피&차
  • 육아
  • 법률
  • 동물
  • 지식
  • 취업정보
  • 식물
  • 다이어트
  • 의료
  • 영어
  • 맛집
  • 추천사이트
  • 해외직구
  • 취미
  • 사진
  • 사진강좌
  • 카메라
  • 만화
  • 애니메이션
  • 포니
  • 자전거
  • 자동차
  • 여행
  • 바이크
  • 민물낚시
  • 바다낚시
  • 장난감
  • 그림판
  • 학술
  • 경제
  • 역사
  • 예술
  • 과학
  • 철학
  • 심리학
  • 방송연예
  • 연예
  • 음악
  • 음악찾기
  • 악기
  • 음향기기
  • 영화
  • 다큐멘터리
  • 국내드라마
  • 해외드라마
  • 예능
  • 팟케스트
  • 방송프로그램
  • 무한도전
  • 더지니어스
  • 개그콘서트
  • 런닝맨
  • 나가수
  • 디지털
  • 컴퓨터
  • 프로그래머
  • IT
  • 안티바이러스
  • 애플
  • 안드로이드
  • 스마트폰
  • 윈도우폰
  • 심비안
  • 스포츠
  • 스포츠
  • 축구
  • 야구
  • 농구
  • 바둑
  • 야구팀
  • 삼성
  • 두산
  • NC
  • 넥센
  • 한화
  • SK
  • 기아
  • 롯데
  • LG
  • KT
  • 메이저리그
  • 일본프로야구리그
  • 게임1
  • 플래시게임
  • 게임토론방
  • 엑스박스
  • 플레이스테이션
  • 닌텐도
  • 모바일게임
  • 게임2
  • 던전앤파이터
  • 마비노기
  • 마비노기영웅전
  • 하스스톤
  • 히어로즈오브더스톰
  • gta5
  • 디아블로
  • 디아블로2
  • 피파온라인2
  • 피파온라인3
  • 워크래프트
  • 월드오브워크래프트
  • 밀리언아서
  • 월드오브탱크
  • 블레이드앤소울
  • 검은사막
  • 스타크래프트
  • 스타크래프트2
  • 베틀필드3
  • 마인크래프트
  • 데이즈
  • 문명
  • 서든어택
  • 테라
  • 아이온
  • 심시티5
  • 프리스타일풋볼
  • 스페셜포스
  • 사이퍼즈
  • 도타2
  • 메이플스토리1
  • 메이플스토리2
  • 오버워치
  • 오버워치그룹모집
  • 포켓몬고
  • 파이널판타지14
  • 배틀그라운드
  • 기타
  • 종교
  • 단어장
  • 자료창고
  • 운영
  • 공지사항
  • 오유운영
  • 게시판신청
  • 보류
  • 임시게시판
  • 메르스
  • 세월호
  • 원전사고
  • 2016리오올림픽
  • 2018평창올림픽
  • 코로나19
  • 2020도쿄올림픽
  • 게시판찾기
  • 오유인페이지
    개인차단 상태
    ㅜ_ㅠ님의
    개인페이지입니다
    가입 : 13-11-29
    방문 : 369회
    닉네임변경 이력
    회원차단
    회원차단해제
    게시물ID : programmer_10904
    작성자 : ㅜ_ㅠ
    추천 : 0
    조회수 : 637
    IP : 218.38.***.247
    댓글 : 4개
    등록시간 : 2015/06/06 00:33:17
    http://todayhumor.com/?programmer_10904 모바일
    c++에서 복사생성자에 대해 질문
    <div style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;">아래의 소스는 원래call by reference라면<span style="line-height:21.6000003814697px;font-size:9pt;">  Person(const Person& i) 인데요</span></div> <div style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;"><span style="line-height:21.6000003814697px;font-size:9pt;">근데 call by value로 나타낸다면 아래의 소스처럼 된다는데요.</span></div> <div style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;"><span style="line-height:21.6000003814697px;font-size:9pt;">컴파일하면 </span><span style="line-height:21.6000003814697px;font-size:9pt;">어차피 컴파일에러가 나지만 만약에 제대로 컴파일이 된다면 </span><span style="line-height:21.6000003814697px;font-size:9pt;">Person obj3(obj2); 문장을 실행시 </span><span style="line-height:21.6000003814697px;font-size:9pt;">무한루프에 빠진다고 써 있어서 한번 오늘 강사님한테 물어보고, 혼자서 생각도 해봤는데요</span></div> <div style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;"><span style="line-height:21.6000003814697px;font-size:9pt;"><br></span></div> <div style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;"><span style="line-height:21.6000003814697px;font-size:9pt;">처음에 </span><span style="line-height:21.6000003814697px;font-size:9pt;">  Person obj3(obj2);를 실행하면 </span><span style="line-height:21.6000003814697px;font-size:9pt;">Person형의 obj3객체가 생성되면서 생성자 함수</span><span style="font-size:9pt;line-height:21.6000003814697px;">Person(const Person i)에 obj2가 매개변수로 대입되는데 이때 call by value에 의해서  obj2가 i로 메모리에 복사 되고, 또 이것은 </span><span style="line-height:21.6000003814697px;font-size:9pt;">Person obj3(i) 다시 말하면 </span><span style="font-size:9pt;line-height:21.6000003814697px;">i를 생성자의 매개변수로 하는 Person형의 obj3객체가 되고,이러면 </span><span style="font-size:9pt;line-height:21.6000003814697px;">Person(const Person i)와 </span><span style="line-height:21.6000003814697px;font-size:9pt;">형태가 같아지기 때문에 생성자 함수</span><span style="line-height:21.6000003814697px;font-size:9pt;">를 호출하게 되어서, </span><span style="line-height:21.6000003814697px;font-size:9pt;">call by value에 의해서 </span><span style="line-height:21.6000003814697px;font-size:9pt;">또 i가 생성자의 매개변수로 복사되고, 대입되어서,</span><span style="line-height:21.6000003814697px;font-size:9pt;"> </span><span style="line-height:21.6000003814697px;font-size:9pt;">Person obj3(i) 가 되고, 또 </span><span style="line-height:21.6000003814697px;font-size:9pt;">생성자 함수를 호출해서 </span><span style="line-height:21.6000003814697px;font-size:9pt;">또 i가 매개변수로 대입되고 </span><span style="line-height:21.6000003814697px;font-size:9pt;"> </span><span style="line-height:21.6000003814697px;font-size:9pt;">Person obj3(i) 가 되고 </span><span style="line-height:21.6000003814697px;font-size:9pt;">call by value에 의해서...</span><span style="line-height:21.6000003814697px;font-size:9pt;">생성자 함수를 호출해서...</span><span style="font-size:9pt;line-height:21.6000003814697px;">무한히 반복되는 것인거 같은데요.</span></div> <div style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;"><span style="font-size:9pt;line-height:21.6000003814697px;"><br></span></div> <div style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;"><span style="font-size:9pt;line-height:21.6000003814697px;">생각해보면 이렇게 실행된다면 절대 </span><span style="line-height:21.6000003814697px;font-size:9pt;">cout<<"Person(const Person i)호출"<<endl;이 문장이 실행되지 않고 계속 call by value에 의해서 생성자의 매개변수가 메모리에 복사되고 그후 생성자 함수의 매개변수에 대입되고 매개변수가 복사되고 대입되고만 영원히 반복되는것 같은데 만약에 이 call by value에 의한 무한루프가 실행된다면 </span><span style="line-height:21.6000003814697px;font-size:9pt;">Person(const Person i)호출 메세지가 정말로 나오지 않는지 알고 싶네요.</span></div> <div style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;"><span style="line-height:21.6000003814697px;font-size:9pt;">그리고 제 생각이 틀렸다면 어떤 흐름으로 무한루프가 되는지 알려 주신다면 정말 좋겠네요.</span></div> <div style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;"><br></div> <div style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;"><br></div> <div style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;">#include <iostream></div> <div style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;">using std::cout;</div> <div style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;">using std::endl;</div> <div style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;">using std::cin;</div> <div style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;"><br></div> <div style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;">class Person</div> <div style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;">{</div> <div style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;">public:</div> <div style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;">    Person(){</div> <div style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;">    cout<<"Person()호출"<<endl;</div> <div style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;">    }</div> <div style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;">    Person(int i){</div> <div style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;">    cout<<"Person(int i)호출"<<endl;</div> <div style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;">    }</div> <div style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;">    Person(const Person i)</div> <div style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;">    {</div> <div style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;">    cout<<"Person(const Person i)호출"<<endl;</div> <div style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;">    }</div> <div style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;">};</div> <div style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;"><br></div> <div style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;">int main()</div> <div style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;">{</div> <div style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;">    Person obj1;</div> <div style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;">    Person obj2(10);</div> <div style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;">    Person obj3(obj2);</div> <div style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;">}</div> <div><br></div>

    이 게시물을 추천한 분들의 목록입니다.
    푸르딩딩:추천수 3이상 댓글은 배경색이 바뀝니다.
    (단,비공감수가 추천수의 1/3 초과시 해당없음)

    죄송합니다. 댓글 작성은 회원만 가능합니다.

    번호 제 목 이름 날짜 조회 추천
    55
    c언어 #define문에서 "\"의 용도는 무엇인가요? [6] ㅜ_ㅠ 15/09/14 16:58 41 0
    54
    구조체를 함수로 만들면 메모리 할당을 할 수 있나요? [4] ㅜ_ㅠ 15/09/07 19:53 40 0
    53
    클래스의 크기 질문 [5] ㅜ_ㅠ 15/09/07 10:27 69 0
    52
    <tgmath.h> 헤더는 비주얼 스튜디오에서 사용할 수 없나요? [5] ㅜ_ㅠ 15/07/25 14:57 45 0
    51
    동적할당 예제 실행중 에러가 나는데.. [2] ㅜ_ㅠ 15/07/24 12:10 58 0
    50
    현재 c언어는 예전버젼과 완벽하게 호환이 않되나요? [3] ㅜ_ㅠ 15/07/19 20:07 43 0
    49
    키보드 버퍼안의 내용이 보고 싶은데 [5] ㅜ_ㅠ 15/07/19 05:39 41 0
    48
    c언어 fgets 함수에 대해서 질문 [13] ㅜ_ㅠ 15/07/06 20:30 31 0
    47
    C++에서 int등의 자료형의 생성자나 소멸자를 만들 수 있나요? [5] 본인삭제금지 ㅜ_ㅠ 15/06/26 16:09 30 0
    46
    c++에서 private속성의 정적멤버 변수는 무얼 의미하는 것이죠? [18] ㅜ_ㅠ 15/06/23 19:28 27 0
    45
    c언어에서 sizeof로 나오는 크기를 이해할 수 없네요. [4] ㅜ_ㅠ 15/06/22 19:37 40 0
    44
    c언어에서 리턴값을 두개 이상 만들 수 없나요? [6] ㅜ_ㅠ 15/06/20 13:48 45 0
    43
    C프로그래밍에서 유효숫자를 무한대로 사용할 수 있나요? [7] ㅜ_ㅠ 15/06/18 18:23 45 0
    42
    클래스의 friend선언에 대해서 질문 [4] ㅜ_ㅠ 15/06/17 21:11 20 0
    41
    C++에서 맴버함수를friend로 지정할때 전역 함수로 지정해야 하나요? [1] ㅜ_ㅠ 15/06/17 17:41 22 0
    40
    생성자 선언시 레퍼런스형은 초기화 할 필요가 없나요? [2] ㅜ_ㅠ 15/06/15 12:56 21 0
    39
    공부할때 정독하면 않좋나요? [11] ㅜ_ㅠ 15/06/10 18:28 54 0
    c++에서 복사생성자에 대해 질문 [4] ㅜ_ㅠ 15/06/06 00:33 35 0
    37
    api소스 디버깅할때 화면이 잘 나타나게 할 방법 없나요? [5] ㅜ_ㅠ 15/06/04 19:37 30 0
    36
    printf("%d")에서 %d는 int형을 나타내나요? [6] ㅜ_ㅠ 15/06/02 16:55 41 0
    35
    int형 변수의 자리수를 구하는 함수는 없나요? [6] ㅜ_ㅠ 15/06/01 17:20 55 0
    34
    C++기초 교재의 생성자와 소멸자 예제에서 에러가 나는데 [4] ㅜ_ㅠ 15/05/31 17:02 37 0
    33
    API 동영상 강의를 구매하는 편이 좋을까요? [6] ㅜ_ㅠ 15/05/26 20:06 19 0
    32
    비주얼 스튜디오의 디버거를 제대로 사용하고 싶은데 [6] ㅜ_ㅠ 15/05/26 00:07 32 0
    31
    같은 예제 반복 질문 죄송합니다만 api기초부분 질문입니다. [8] ㅜ_ㅠ 15/05/25 12:29 24 0
    30
    api 기본 예제 질문 [2] ㅜ_ㅠ 15/05/23 18:34 32 0
    29
    비주얼 스튜디오 구버젼을 사용해도 괜찮을까요? [4] ㅜ_ㅠ 15/05/23 15:47 36 0
    28
    비주얼 스튜디오에서 API예문을 디버깅할 수 있나요? [1] ㅜ_ㅠ 15/05/23 15:35 27 0
    27
    api에서 SetTextAlign 옵션 질문 [2] ㅜ_ㅠ 15/05/22 20:12 27 0
    [1] [2] [3]
    단축키 운영진에게 바란다(삭제요청/제안) 운영게 게시판신청 자료창고 보류 개인정보취급방침 청소년보호정책 모바일홈