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
수정 아이콘
아 그말이였나요^^; 답변 감사드립니다.
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
45294 스타 질문이요 양박시대 박태민의 행보...?? [26] 다음세기2452 08/11/19 2452
45293 [WOW] 주술사 특성 질문입니다. [6] 마이스타일2847 08/11/19 2847
45292 밀리오레에서 산 옷들 환불할 수 있나요? [6] Morgan3129 08/11/19 3129
45291 주식관련 자격증에 대해 [4] 망고샴푸2192 08/11/19 2192
45290 재검판정 받았는데 .. 질문입니다 [4] 양파말이2085 08/11/19 2085
45289 mp3 다나와 ( 인터넷구매 ) 에 관한 질문입니다 [2] 多登1798 08/11/19 1798
45287 리치왕의 분노도 나왔으니... 유닉스드라이1566 08/11/19 1566
45286 파워포인트 에니메이션 기능 질문입니다. [3] 악학궤범a6782 08/11/19 6782
45283 해커스 토익 리스닝책을 구입하였는데... [3] 가우스1975 08/11/19 1975
45282 C++ 클래스 템플릿에 관한 질문입니다. [2] 루시리스1622 08/11/18 1622
45281 스타크 부대지정 관련 키보드 오류에 관하여 질문드립니다. [3] 굿데이 그만둬1742 08/11/18 1742
45278 컴퓨터 고수님들 답변 부탁드립니다. [2] HirosueMooN1584 08/11/18 1584
45277 ROTC 소위 생활 질문입니다 [9] Kaga7687 08/11/18 7687
45276 이승만에 대해 질문드립니다. [19] 하루를산다1758 08/11/18 1758
45274 밑에 털에 관한 질문을 보고..글 올려요.. [5] 개그맨2178 08/11/18 2178
45273 남자분들 수염이 어떠신가요? [23] 핸드레이크7612 08/11/18 7612
45272 병역관련질문입니다 [3] MayLee2683 08/11/18 2683
45271 국가공인영어시험에 대해서.. [3] 테란완전정복1526 08/11/18 1526
45270 미대입시하는 친구에게 줄 선물 [4] worcs2766 08/11/18 2766
45268 디지털피아노 아시는 분... [8] bonk31820 08/11/18 1820
45267 [wow] 성기사 장비 질문입니다. [4] 飛上夢2519 08/11/18 2519
45266 나이트엘프 리플레이 추천 부탁드립니다. [4] 낙화2088 08/11/18 2088
45265 그래픽카드 질문.. [1] 타우τ1524 08/11/18 1524
목록 이전 다음
댓글

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