c++ 생성자 관련 질문

조회수 774회
#include <iostream>
#include <cstring>

using namespace std;

namespace COMP_POS {
    enum {
        CLERK = 1, SENIOR, ASSIST, MANAGER
    };

    void ShowPositionInfo(int pos)
    {
        switch (pos) {
        case CLERK:
            cout << "사원" << endl;
            break;
        case SENIOR:
            cout << "주임" << endl;
            break;
        case ASSIST:
            cout << "대리" << endl;
        case MANAGER:
            cout << "과장" << endl;
        }
    }
}

class NameCard {
private:
    char * name;
    char * company;
    char * phone;
    int position;
public:
    NameCard(char * name, char * company, char * phone, int mypos) : position(mypos)
    {
        this->name = new char[strlen(name) + 1];
        strcpy(this->name, name);
        this->company = new char[strlen(company) + 1];
        strcpy(this->company, company);
        this->phone = new char[strlen(phone) + 1];
        strcpy(this->phone, phone);
    }
    NameCard(const NameCard &copy) : position(copy.position)
    {
        name = new char[strlen(copy.name) + 1];
        strcpy(name, copy.name);
        company = new char[strlen(copy.company) + 1];
        strcpy(company, copy.company);
        phone = new char[strlen(copy.phone) + 1];
        strcpy(phone, copy.phone);
    }
    void ShowNameCardInfo()
    {
        cout << "이름 : " << name << endl;
        cout << "회사 : " << company << endl;
        cout << "전화번호 : " << phone << endl;
        cout << "직급 : ";
        COMP_POS::ShowPositionInfo(position);
        cout << endl << endl;
    }
    ~NameCard()
    {
        delete[]name;
        delete[]company;
        delete[]phone;
        cout << "called destructor!" << endl;
    }
};

int main()
{
    NameCard manClerk("Lee", "ABC", "010-8200-6545", COMP_POS::CLERK);
    NameCard copy1 = manClerk;
    NameCard manSenior("Hong", "Organge", "01-8222-54545", COMP_POS::SENIOR);
    NameCard copy2 = manSenior;
    copy1.ShowNameCardInfo();
    copy2.ShowNameCardInfo();
    return 0;
}

윤성우의 열혈 c++ 프로그래밍을 교재삼아 공부하고 있는 중입니다. 위는 예제 중 하나를 푼 것인데 main함수에서 manClerk 과 manSenior 부분에서 각각 "Lee" 와 "Hong"에서 붉은 줄이 쳐지면서

인수 목록이 일치하는 생성자 "NameCard::NameCard"의 인스턴스가 없습니다.

라는 오류가 뜹니다...

책의 답안과 다른 것이 없는데 왜 이런 오류가 생길까요...?

1 답변

답변을 하려면 로그인이 필요합니다.

Hashcode는 개발자들을 위한 무료 QnA 사이트입니다. 계정을 생성하셔야만 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 계정을 생성하셔야만 글을 작성하실 수 있습니다.