12.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>
라고 사용한다.
ㅡ,,,,,,,,,,일단패쓰할꼐야,,,ㅎ
댓글남기기