PGR21.com
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
Date 2008/11/18 23:55:29
Name 루시리스
Subject C++ 클래스 템플릿에 관한 질문입니다.
#include <iostream>
using namespace std;
template <typename T1, typename T2>
class CArray{
private :
T1 x;
T2 y;

public :
CArray(T1 a=0, T2 b=0) : x(a), y(b){}

template <typename T1, typename T2>
friend ostream &operator<<(ostream &out, CArray<T1, T2> &Po);
};

template <typename T1, typename T2>
ostream &operator<<(ostream &out, CArray<T1, T2> &Po)  
{
out<<"("<<Po.x<<", "<<Po.y<<")"<<endl;
return out;
}

int main()
{
CArray<int, char> obj;
obj.put(1, 'a');
return 0;
}

2개의 서로 다른 타입의 데이터를 쌍으로 저장할 수 있는 CArray 클래스 템플릿을 만들어보자.
예를 들면 CArray<int , char> Obj; 객체는 int 값과  char 값을 쌍으로 저장할 수 있다. 문제를
쉽게 하기 위해 배열의 크기는 10으로 제한하며 현재 저장되어 있는 개수까지만 유효한 데이터로
취급한다. 그리고 다음과 같은 처리가 가능해야한다.
Obj.put(1, 'a')    //현재까지 저장된 마지막 원소 다음에 데이터를 추가한다.
cout<<Obj;      //유효한 원소들을 쌍으로 출력한다. (1, a)

이게 문제인데요..
지금 안되는 부분이 배열 부분인데 배열에 어떻게 대입해야 할지 감이안오네요..
배열 선언도 typename T3를 추가해서 멤버 변수부분에 T3 ary[10] 이런식으로 해야하는지도 헷갈리구요..
어떻게 해야할까요?

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
GrayScavenger
08/11/19 10:04
수정 아이콘
문제를 읽어보니 CArray라는 클래스 자체가 T1 타입과 T2 타입의 배열을 가지고 있어야 하는 거 같은데요;

T1 x[10];
T2 y[10];
이렇게 배열로 바꾸시고 (문제에서 크기를 10으로 제한했으니 동적 배열을 안써도 되군요.)

unsigned int length;
로 배열 크기까지 지정해서 첨엔 0으로 초기화하시고

put 함수에서는 값을 인자로 받아서 length 위치에 집어넣고 length++해주면 되고,

ostream &operator<<(ostream &out, CArray<T1, T2> &Po) 함수에서는
저 출력 부분을 클래스의 배열 길이(length 변수)만큼 해주시면 되겠군요.
루시리스
08/11/19 15:59
수정 아이콘
아 그말이였나요^^; 답변 감사드립니다.
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
45295 핸드폰번호이동질문요 [2] khw7112052 08/11/19 2052
45294 스타 질문이요 양박시대 박태민의 행보...?? [26] 다음세기2437 08/11/19 2437
45293 [WOW] 주술사 특성 질문입니다. [6] 마이스타일2824 08/11/19 2824
45292 밀리오레에서 산 옷들 환불할 수 있나요? [6] Morgan3120 08/11/19 3120
45291 주식관련 자격증에 대해 [4] 망고샴푸2181 08/11/19 2181
45290 재검판정 받았는데 .. 질문입니다 [4] 양파말이2071 08/11/19 2071
45289 mp3 다나와 ( 인터넷구매 ) 에 관한 질문입니다 [2] 多登1785 08/11/19 1785
45287 리치왕의 분노도 나왔으니... 유닉스드라이1556 08/11/19 1556
45286 파워포인트 에니메이션 기능 질문입니다. [3] 악학궤범a6773 08/11/19 6773
45283 해커스 토익 리스닝책을 구입하였는데... [3] 가우스1961 08/11/19 1961
45282 C++ 클래스 템플릿에 관한 질문입니다. [2] 루시리스1612 08/11/18 1612
45281 스타크 부대지정 관련 키보드 오류에 관하여 질문드립니다. [3] 굿데이 그만둬1729 08/11/18 1729
45278 컴퓨터 고수님들 답변 부탁드립니다. [2] HirosueMooN1574 08/11/18 1574
45277 ROTC 소위 생활 질문입니다 [9] Kaga7675 08/11/18 7675
45276 이승만에 대해 질문드립니다. [19] 하루를산다1742 08/11/18 1742
45274 밑에 털에 관한 질문을 보고..글 올려요.. [5] 개그맨2169 08/11/18 2169
45273 남자분들 수염이 어떠신가요? [23] 핸드레이크7579 08/11/18 7579
45272 병역관련질문입니다 [3] MayLee2673 08/11/18 2673
45271 국가공인영어시험에 대해서.. [3] 테란완전정복1515 08/11/18 1515
45270 미대입시하는 친구에게 줄 선물 [4] worcs2758 08/11/18 2758
45268 디지털피아노 아시는 분... [8] bonk31812 08/11/18 1812
45267 [wow] 성기사 장비 질문입니다. [4] 飛上夢2508 08/11/18 2508
45266 나이트엘프 리플레이 추천 부탁드립니다. [4] 낙화2074 08/11/18 2074
목록 이전 다음
댓글

+ : 최근 6시간내에 달린 댓글
+ : 최근 12시간내에 달린 댓글
맨 위로