게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
초보주의, C++) 포인터로 매개변수 받는것을 배열로 바꿀때 질문입니다.
게시물ID : programmer_18330짧은주소 복사하기
작성자 : 치쿠린
추천 : 0
조회수 : 2395회
댓글수 : 11개
등록시간 : 2016/09/01 18:28:49
옵션
  • 본인삭제금지
아래는 성공한 코드( 포인터로 매개변수를 받음)

#include <iostream>
 
using namespace std;
 
class student {
private:
    char * name;
    int age;
    char * hobby;
public:
    void ShowInfo();
    void SetInfo(char * _name, int _age, char * _hobby);
    void Study();
    void Sleep();
};
 
void student::ShowInfo()
{
    cout << "이름: " << name << ", 나이: " << age << ", 취미: " << hobby << endl;
}
 
void student::SetInfo(char * _name, int _age, char * _hobby)
{
    name = _name;
    age = _age;
    hobby = _hobby;
}
 
void student::Study()
{
    cout << "공부!" << endl;
}
 
void student::Sleep()
{
    cout << "잠!" << endl;
}
 
int main()
{
    student stu;
 
    stu.SetInfo("김철수", 16, "컴퓨터 게임");
    stu.ShowInfo();
 }
 


아래는 실패한 코드
(포인터를 사용하지 않고 똑같은 기능을 구현해보려고함. 배열로 시도함)


#include <iostream>

using namespace std;


class student {

private:

    char name[20];

    int age;

    char hobby[20];

public:

    void ShowInfo();

    void SetInfo(char _name[20], int _age, char _hobby[20]);

    void Study();

    void Sleep();

};


void student::ShowInfo() {

    cout << "이름: " << name << ", 나이: " << age << ", 취미: " << hobby << endl;

}

void student::SetInfo(char _name[20], int _age, char _hobby[20]) {

    name = _name[20];

    age = _age;

    hobby = _hobby[20];

}

void student::Study() {

    cout << "공부!" << endl;

}

void student::Sleep() {

    cout << "!" << endl;

}


int main() {

    student stu;

    stu.SetInfo("김철수", 16, "컴퓨터 게임");

    stu.ShowInfo();

    return 0;

}

오류 내용은 Array type 'char[20]' is not assignable' 이라고 나옵니다..
포인터를 사용하지 않고 똑같은 기능을 배열로 구현하려고 하는데 어떻게 할 수 있을까요?


전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호