생성자는 리턴이 안되는걸로 아는데 초기화 한걸 어떻게 메인으로 보낼 수 있는 방법이 있나요..?
아예 제가 개념이 없는거죠.. ㅠㅠ
댓글 10
생성자는 당연히 리턴이 안됨. 메인에서 저 aaa의 인스턴스를 포인터로만 갖고 놀고 싶은거라면 aaa의 생성자를 private: 선언 해주고 생성하기 위한 aaa의 static 멤버 함수로 static aaa* create() < 같이 만들어주면 됨.
코코(121.161)2012-04-19 23:07
코드어딘가에서의 new aaa() 라는 문장은 다음처럼 동작한다. 1. 클래스 aaa 크기만큼의 메모리 할당후, 클래스 aaa 의 생성자 함수( aaa:aaa()) 를 호출한다. 2. 클래스 aaa 의 생성자 함수(aaa:aaa())) 는 또다시 list = new aaa() 을 실행함으로 \"1\" 을 반복한다.
레노미나012(ilbo0401)2012-04-19 23:12
위 코드는 생성자함수만 죽어라 호출하다가 , memory allocation failed 라는 예외를 발생하거나, 구현에 따라 그런 예외없이 조용히 프로세스가 죽어버림
레노미나012(ilbo0401)2012-04-19 23:13
코코, 레노미나012 // 와! 역시 형들 대단하십니다 제가 뭘 잘못했는지 이해가 단번에 되네요 ^^ 제가 지금 구현하고 있는게 다른 클래스에 정보가 저장되어 있고 리스트 클래스라는 것을 만들어서 여기서 정보를 insert delete등 구현하는 걸 만들고 있어요.. 근데 리스트클래스에서 외부txt파일을 읽어와서 학생 정보를 저장하려고 하는데 이 구문을 생성자로 만들려니까 클래스 안에서 생성자 안에 new로 또 같은 생성자를 만드는 것을 착안했는데.. 다른 방법을 써야 하는건가요?
익명(121.175)2012-04-19 23:18
파일이름을 읽어와서 리스트를 생성하는것은 무조건 생성자를 써야 한다는 가정이면 외부로 자료를 뺄 수 있는 방법이 있나요?.. 자료가 있는 클래스에 set함수 같은걸 써야하나..
익명(121.175)2012-04-19 23:19
@레노미나012 그냥 무한 재귀호출이라고 쉽게 얘기하면 안되냐?
c(220.117)2012-04-19 23:20
생성자에서는 변수 초기화만 해주고 파일로드함수는 멤버로 따로 만들어줘. 그게 좋음.
코코(121.161)2012-04-19 23:25
c// 글쎄다. 무한 재귀호출이라는 용어정도를 이해한다면 저런 질문은 안할듯싶은데~
레노미나012(ilbo0401)2012-04-19 23:28
그것보다 너가 뭘 하고 싶어하는건지 정확히 이해가 안간다.. 그니깐 네말은 정보클래스랑 리스트클래스가 있고, 정보클래스의 인스턴스를 리스트클래스에서 관리하고 싶어하는건가?
코코(121.161)2012-04-19 23:29
코코//횽 맞아요 그런함수에요!! 파일 갯수를 파악해서 미리 생성자로 list 만큼 정보클래스를 동적할당한 후 그 안에 insert를 하는거죠
생성자는 당연히 리턴이 안됨. 메인에서 저 aaa의 인스턴스를 포인터로만 갖고 놀고 싶은거라면 aaa의 생성자를 private: 선언 해주고 생성하기 위한 aaa의 static 멤버 함수로 static aaa* create() < 같이 만들어주면 됨.
코드어딘가에서의 new aaa() 라는 문장은 다음처럼 동작한다. 1. 클래스 aaa 크기만큼의 메모리 할당후, 클래스 aaa 의 생성자 함수( aaa:aaa()) 를 호출한다. 2. 클래스 aaa 의 생성자 함수(aaa:aaa())) 는 또다시 list = new aaa() 을 실행함으로 \"1\" 을 반복한다.
위 코드는 생성자함수만 죽어라 호출하다가 , memory allocation failed 라는 예외를 발생하거나, 구현에 따라 그런 예외없이 조용히 프로세스가 죽어버림
코코, 레노미나012 // 와! 역시 형들 대단하십니다 제가 뭘 잘못했는지 이해가 단번에 되네요 ^^ 제가 지금 구현하고 있는게 다른 클래스에 정보가 저장되어 있고 리스트 클래스라는 것을 만들어서 여기서 정보를 insert delete등 구현하는 걸 만들고 있어요.. 근데 리스트클래스에서 외부txt파일을 읽어와서 학생 정보를 저장하려고 하는데 이 구문을 생성자로 만들려니까 클래스 안에서 생성자 안에 new로 또 같은 생성자를 만드는 것을 착안했는데.. 다른 방법을 써야 하는건가요?
파일이름을 읽어와서 리스트를 생성하는것은 무조건 생성자를 써야 한다는 가정이면 외부로 자료를 뺄 수 있는 방법이 있나요?.. 자료가 있는 클래스에 set함수 같은걸 써야하나..
@레노미나012 그냥 무한 재귀호출이라고 쉽게 얘기하면 안되냐?
생성자에서는 변수 초기화만 해주고 파일로드함수는 멤버로 따로 만들어줘. 그게 좋음.
c// 글쎄다. 무한 재귀호출이라는 용어정도를 이해한다면 저런 질문은 안할듯싶은데~
그것보다 너가 뭘 하고 싶어하는건지 정확히 이해가 안간다.. 그니깐 네말은 정보클래스랑 리스트클래스가 있고, 정보클래스의 인스턴스를 리스트클래스에서 관리하고 싶어하는건가?
코코//횽 맞아요 그런함수에요!! 파일 갯수를 파악해서 미리 생성자로 list 만큼 정보클래스를 동적할당한 후 그 안에 insert를 하는거죠