c++ 관련 초보적인 질문
글쓴이: canuyes / 작성시간: 화, 2012/10/30 - 12:17오후
C++ 관련 초보적인 질문을 드립니다.
창피스럽지만 코드도 첨부합니다.(굳이 안보셔도 답변은 가능하실 것 같습니다;;ㅠㅠ)
class BoundCheckAccount{ private: int len; Account**arr; BoundCheckAccount(const BoundCheckAccount& ref){} BoundCheckAccount& operator=(const BoundCheckAccount& ref){} public: BoundCheckAccount(int arrlen=100):len(arrlen){arr=new Account*[arrlen];} ~BoundCheckAccount(){delete []arr;} BoundCheckAccount& operator[](int idx){ if(idx<0||idx>=len){ cout<<"INDEXING ERROR"<<endl; exit(1); } else return arr[idx]; }};
위는 제가 짠 경계값을 확인해주는 1차원 포인터 배열입니다.
위의 클래스를 private 멤버로 갖는 컨트롤 클래스를 정의할때
위의 BoundCheckAccount 객체의 초기화는 어디에서 진행하여야 하나요?
컨트롤 클래스의 private 영역에서 단순히 배열 처럼 BoundCheckAccount(100); 과 같이 코딩하면 에러가 뜹니다.
현재 울며 겨자먹기로 BoundCheckAccount의 생성자에 default 값을 주어 코딩하고 있습니다.
혹시 별도의 초기화함수를 작성해야 하는 건가요?
답변을 기다립니다. ㅠㅠ
Forums:
이런 식으로 하는 걸 물으시는 건가요?
이런 식으로 하는 걸 물으시는 건가요?
아니면 요렇게 해볼 수도 있겠습니다.
아, 그리고 보다가 이상한 점 있는데, operator[] 함수에서 반환하는 값이 BoundCheckAccount&가 아니라 Account* 또는 이것의 참조자인 것 같습니다.
또 예외처리하실 때는 C++이니까 try-catch와 throw를 잘 활용해보셔요.
저는 이렇게 생각했습니다.
댓글 달기