최대 1 분 소요

실습 7

전화번호 앞자리 *로 마스킹하기

교수님 코드

#include <string>
#include <vector>
#include <iostream>

using namespace std;

class PhoneNumber
{
private:
    string number;

public:
    PhoneNumber(string num);
    string masking(int k) const; // k 만큼 마스크한다. -> 멤버 함수를 const로 설정해봄.
    friend ostream &operator<<(ostream &os, const PhoneNumber &p);
};
PhoneNumber::PhoneNumber(string num)
{
    this->number = num;
}
string PhoneNumber::masking(int k) const
{
    string masked = "";
    for (int i = 0; i < number.length(); i++)
    {
        if (i < k)
            masked += "*";
        else
            masked += number[i];
    }
    return masked;
}
ostream &operator<<(ostream &os, const PhoneNumber &p)
{
    string masked = p.masking(7);
    os << masked;
    return os;
}
int main()
{
    PhoneNumber pn("01022233333");
    cout << pn << endl;
}

main

int main()
{
    PhoneNumber pn("01022233333");
    cout << pn << endl;
}

template

데이터형만 다르지, 본연의 동작에서는 별 차이가 없다.
template를 사용하는 이유는 동작이 동일하느데 타입만 다른 경우가 필요하다. 이러한 자료구조형을 효율적으로 지원하기 위해서 템플릿이라는 개념을 지원한다.

똑같은 타입 두 개를 2차원 구조를 만들고 싶을 때, 그 타입을 일종의 대명사로 비워둔다. 그게 어떤 형인지를 명시하지 않고 아무거나 하나 기호를 정해서 대명사처럼 사용한다. 주로 template <class T> 라고 사용한다.


ㅡ,,,,,,,,,,일단패쓰할꼐야,,,ㅎ

댓글남기기