c++ new 사용

글쓴이: 익명 사용자 / 작성시간: 일, 2020/06/07 - 6:57오후
template
class List {
T* pElems;
int sz;
public:
List() {
pElems = new T[size];
sz = 0;
}
이런식으로 코드를 작성하였는데 no matching function for call to Mystring
이렇게 에러가 뜸니다 어떤 문제가 발생한 걸까요?
여기서 Mystring은 클래스 입니다.
class MyString {
private:
char* str;
public:
MyString(char* str) {
this->str = str;
}
bool operator == (const MyString& s) const {return strcmp(str,s.str);}
friend ostream& operator << (ostream& os, const MyString& M);
void operator = (const MyString& M) const {
strcpy(str,M.str);
return ;
}
};
Forums:
MyString에 default
MyString에 default constructor가 없는데, 매개변수 없이 MyString 객체를 생성하려고 하는군요.
당연히 될 리가 없습니다.
해결책은 크게 두 가지인데,
(1) MyString에 default constructor를 만들던가
(2) MyString을 생성할 때 반드시 매개변수를 제공해 줘야 합니다.
(1)을 어떻게 하는지는 설명할 필요가 없을 것 같고,
(2)를 하는 방법은 아래 예시를 참고하시길.
댓글 달기