메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

뇌를 자극하는 C++ 프로그래밍

뇌를 자극하는 C++ 프로그래밍 질의응답 게시판입니다.

strcpy를 꼭 써야하나요

2007-11-20

|

by 박상현

2430

Employee(char * _name, int _age)
{        
name = new char[strlen(_name) + 1];
//strcpy(name, _name);
name = _name;
age = _age;
}

위 예제는 Employee라는 이름의 클래스의 생성자 부분입니다
예전부터 은행관리 프로그램이나 명단관련한 클래스를 만들 때
꼭 들어가는 사람이름 입력 부분에서 strcpy를 쓰는경우와 그냥 복사하는경우
둘다 실행은 무리없이 되고 결과도 똑같이 나오는데, 굳이 strcpy를 쓰는이유를 알고 싶습니다
뭔가 이유가 있었던거같은데..일단 이문장에서는 두 경우가 모두 무리없이 실행됩니다

그리고 꼭 쓰지 않아도 될것같다는 생각이 든것은 상속관계에서 Base클래스의 멤버를 초기화 시킬 때
멤버이니셜라이져를 쓰는데 그 때는 그냥 값이 복사되는거랑 같게 됩니다 그래서 ~알고싶습니다
왜 저렇게 쓰게되는지~

그리고 또 ..그냥 name = _name 이렇게 하면 원래 배열전체에서 배열전체로의 복사는 허용되지않는다
로 알고 있는데 그것에 위배되는거아닌가요~
댓글 입력
자료실