- 질문 게시판입니다.
Date | 16/06/05 08:05:26 |
Name | ![]() |
Subject | 템플릿 클래스 질문드립니다. |
아... 원래 홍차넷에는 첫 글을 멋진 걸 써보고 싶어서 나름 초안도 짜놓은 글이 있었는데 학기 중에 계속 고달프다가 이런 글을 올리게 될거라곤 생각을 못했네요. 뭔가 굉장히 기분이 씁쓸하고 자괴감이 드네요. 그래도 혹시나 쥐푸라기 잡는 심정으로 질문드려봐요... 지금 제가 문법적인 문제 때문에 헤매는건 맞는 것 같은데, 구글 자료랑 가지고 있는 윤성우의 열혈강의 C++를 통해서 오랜시간 고민해봤지만 해결방법을 찾지 못해 질문드립니다. 지금 하려고 하는건 class Container; class Node { friend class Container; friend class List; friend class SortedList; friend class Set; friend ostream& operator <<(ostream &out, const Container &container); friend ostream& operator <<(ostream &out, Node &node) { out << node.c; return out; } public: static int nNode(); private: Node(char c); Node(const Node& node); ~Node(); Node *next; char c; static int n; }; Node를 template class로 바꾸고 character c를 template c로 바꾸려는 것이구요. 제가 이것저것 참조해서 현재 도달한 오답은 이겁니다. template class Container; template class List; template class Node; template ostream& operator<< (ostream&, const Container template ostream& operator<< (ostream&, Node template class Node { friend class Container friend class List friend ostream& operator << <> (ostream& out, const Container friend ostream& operator<< <>(ostream&, Node&); public: static int nNode(); private: Node(T c); Node(const Node& node); ~Node(); Node *next; T c; static int n; }; template std::ostream& operator<< <>(std::ostream& out, Node out << node->c; return out; } 읽어주셔서 감사합니다. 0
이 게시판에 등록된 kaestro님의 최근 게시물 |
저도 C++를 그다지 잘 알지는 못하는데, 템플릿을 어떻게 쓰는지 문법을 물으시는 건가요? 만일 그렇다면...
#include <iostream>
#include <string>
using namespace std;
template <typename... 더 보기
#include <iostream>
#include <string>
using namespace std;
template <typename... 더 보기
저도 C++를 그다지 잘 알지는 못하는데, 템플릿을 어떻게 쓰는지 문법을 물으시는 건가요? 만일 그렇다면...
#include <iostream>
#include <string>
using namespace std;
template <typename T>
class TNode ~{
public:
TNode(T t);
TNode(const TNode& tnode);
~TNode();
TNode *next;
T cont;
};
template <typename T>
TNode<T>::TNode(T t) ~{
cont = t;
cout << "Constructor for " << cont << " is called.\\n";
}
template <typename T>
TNode<T>::TNode(const TNode& tnode) ~{
cont = tnode.cont;
cout << "Constructor for " << cont << " is called.\\n";
}
template <typename T>
TNode<T>::~TNode() ~{
cout << "Destructor for " << cont << " is called.\\n";
}
int main() ~{
int i = 10;
string aStr = "A Sample String";
TNode<int> aVar(i);
TNode<int> bVar(aVar);
TNode<string> sVar(aStr);
TNode<string> tVar(sVar);
cout << "Well...\\n";
}
간단하게 예제를 짜 보았습니다. 이것을 물으신 것인지는 모르겠는데, 도움이 되었으면 좋겠습니다. :)
만일 원하시는 방향이라면, 일단 돌려보시고, 필요한 부분을 확장해 나가시면 되지 않을까 싶습니다.
#include <iostream>
#include <string>
using namespace std;
template <typename T>
class TNode ~{
public:
TNode(T t);
TNode(const TNode& tnode);
~TNode();
TNode *next;
T cont;
};
template <typename T>
TNode<T>::TNode(T t) ~{
cont = t;
cout << "Constructor for " << cont << " is called.\\n";
}
template <typename T>
TNode<T>::TNode(const TNode& tnode) ~{
cont = tnode.cont;
cout << "Constructor for " << cont << " is called.\\n";
}
template <typename T>
TNode<T>::~TNode() ~{
cout << "Destructor for " << cont << " is called.\\n";
}
int main() ~{
int i = 10;
string aStr = "A Sample String";
TNode<int> aVar(i);
TNode<int> bVar(aVar);
TNode<string> sVar(aStr);
TNode<string> tVar(sVar);
cout << "Well...\\n";
}
간단하게 예제를 짜 보았습니다. 이것을 물으신 것인지는 모르겠는데, 도움이 되었으면 좋겠습니다. :)
만일 원하시는 방향이라면, 일단 돌려보시고, 필요한 부분을 확장해 나가시면 되지 않을까 싶습니다.
목록 |
|