게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
c++초 기초적인 질문
게시물ID : programmer_9707짧은주소 복사하기
작성자 : ㅜ_ㅠ
추천 : 0
조회수 : 505회
댓글수 : 3개
등록시간 : 2015/05/03 23:57:01
옵션
  • 본인삭제금지
원래교재에는 레퍼런스 타입인 Person(const Person& i)으로 나와있는데 읽다가 보니까 아래의 코드가 무한루프에 빠진다고 하는데 다행?히도 컴파일러가 막아주어서 무한루프에 빠지지 않는다고 하는데...
근데 저는 왜 이 코드가 무한루프에 빠지는지 알고 싶은데요.
왜 무한루프에 빠지나요? 
생각해보면 Person형의 객체 obj3가 생성되면서 생성자에 obj2객체가 대입되면 "Person(const Person i)호출"이 표시되는데
그 이후 어떻게 무한루프가 되나요?
무한루프가 되려면 cout실행 이전에 생성자에 obj2를 대입할때마다 계속해서 Person 객체가 생성되어서 무한루프가 된다는 이야기인거 같은데
그게 어떻게 가능한가요?
obj3객체가 만들어지면서 obj2가 cout에 대입되니까 그냥 cout이 출력만 되고 끝나는 거 아닌가요?
아님 다른 방법으로 무한루프에 빠지는 건가요?
이 코드가 어떻게 무한루프가 가능하게 되는지 알고 싶네요.

#include <iostream>
using std::cout;
using std::endl;
using std::cin;

class Person
{
public:
    Person(){
    cout<<"Person()호출"<<endl;
    }
    Person(int i){
    cout<<"Person(int i)호출"<<endl;
    }
    Person(const Person i)
    {
    cout<<"Person(const Person i)호출"<<endl;
    }
};

int main()
{
    Person obj1;
    Person obj2(10);
    Person obj3(obj2);
}

전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호