이 코딩 인수목록이 일치하지 않다는게 무슨말인가요?
조회수 263회
#include <iostream>
#include <cstring>
using namespace std;
private:
char * name;
char * company;
char * tel;
int position;
public:
Namecard(char * n, char * c, char * t, int pos) :position(p)
{
name = new char[strlen(n) + 1];
company = new char[strlen(c) + 1];
tel = new char[strlen(t) + 1];
strcpy(name, n);
strcpy(company, c);
strcpy(tel, t);
}
void showcard() {
cout << "이름: " << name << endl;
cout << "회사: " << company << endl;
cout << "전화: " << tel << endl;
cout << "직책: "; COMP_POS::showposition(position);
}
~Namecard() {
delete[]name;
delete[]company;
delete[]tel;
}
};
int main(void)
{
Namecard manclerk("Lee," "ABC", "010-2222-1111", COMP_POS::CLERK);
Namecard mansenior("kim," "DEF", "010-3222-5555", COMP_POS::SENIOR);
Namecard manassist("park," "SAM", "010-7777-1111", COMP_POS::ASSIST);
return 0;
}
메인함수에서 생성자를 위처럼 설정했더니 인수목록이 일치하는 생성자 namecard::namecard의 인스턴스가 없다 라고 오류가 뜨는데 뭐가 잘못된 건지 어떻게 고쳐야 하는지 알 수 있을까요?
1 답변
-
C++은 C보다 매개변수 형식 지정이 엄격합니다. C 스타일 문자열을 매개변수로 받으려면
const char *
을 지정해 줘야 합니다.Namecard(char * n, char * c, char * t, int pos) :position(p)
위의 줄을 아래처럼 바꾸시면 됩니다.
Namecard(const char* n, const char* c, const char* t, int pos) :position(p)
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력