playXP

서브 메뉴

Page. 1 / 18500 [내 메뉴에 추가]
글쓰기
작성자 아이콘 LingTone
작성일 2018-06-15 13:15:13 KST 조회 629
제목
C++ 간만에 하려니까 어렵다

#include <iostream>

#include <cstring>

 

class Account {

private:

    char* name;

    char* number;

    int password;

    int money;

 

public:

    Account(const char* name, const char* number,

            int password, int money) : password(password), money(money) {

        int lenName = (int)strlen(name);

        int lenNumber = (int)strlen(number);

        

        this->name = new char[lenName + 1];

        this->number = new char[lenNumber + 1];

        

        strcpy(this->name, name);

        strcpy(this->number, number);

    }

    

    Account& operator=(const Account& ref) {

        delete[] name;

        delete[] number;

        

        int lenName = (int)strlen(ref.name);

        int lenNumber = (int)strlen(ref.number);

        

        this->name = new char[lenName + 1];

        this->number = new char[lenNumber + 1];

        

        strcpy(this->name, ref.name);

        strcpy(this->number, ref.number);

        

        this->password = ref.password;

        this->money = ref.money;

        

        return *this;

    }

    

    void ShowInfo() {

        printf("이름: %s\n", name);

        printf("번호: %s\n", number);

        printf("비밀번호: %d\n", password);

        printf("금액: %d\n", money);

    }

    

    ~Account() {

        delete[] name;

        delete[] number;

    }

};

 

int main() {

    Account A("홍길동", "333", 4321, 500);

    Account B("김복남", "777", 1234, 1200);

    

    A = B;

    

    A.ShowInfo();

    std::cout << "\n";

    B.ShowInfo();

    

    return 0;

}

 

밑에 연산자 오버로딩 하는 거 올라온 글 보고 조금 고쳐봤읍니다

지속적인 허위 신고시 신고자가 제재를 받을 수 있습니다.
신고 사유를 입력하십시오:

발도장 찍기
아이콘 기라졸 (2018-06-15 19:39:23 KST)
0↑ ↓0
센스 이미지
감사합니당 혹시 연결리스트 실행하면 Account 클래스 check 멤버함수 불러올때 세그먼트 오류 뜨는데 혹시 세그먼트 오류를 어떻게 해결하나요
아이콘 LingTone (2018-06-15 20:31:24 KST)
0↑ ↓0
센스 이미지
혹시 Segmentation Fault 오류를 말씀하시는 건가요? 그건 주로 초기화를 하지 않은 포인터나 널 포인터를 이용해 값 변경, 대입, 복사 등의 작업을 할 때 발생합니다. 메모리 공간 아무데나 쓰기 작업을 하다가 읽기전용 영역을 건드려서 운영체제한테 빠꾸먹은 경우죠. 혹시 그런 코드가 있나 살펴보세요.
아이콘 LingTone (2018-06-18 17:57:37 KST)
0↑ ↓0
센스 이미지
sizeof(name) -> strlen(ref.name)으로 수정
댓글을 등록하려면 로그인 하셔야 합니다. 로그인 하시려면 [여기]를 클릭하십시오.
롤토체스 TFT - 롤체지지 LoLCHESS.GG
소환사의 협곡부터 칼바람, 우르프까지 - 포로지지 PORO.GG
배그 전적검색은 닥지지(DAK.GG)에서 가능합니다
  • (주)플레이엑스피
  • 대표: 윤석재
  • 사업자등록번호: 406-86-00726

© PlayXP Inc. All Rights Reserved.