C++

[C++] C++ ESPRESSO 중간 점검 2-10

c0rinne 2022. 4. 4. 17:00

중간 점검 (385p)

1. 프렌드 함수란 무엇인가?

클래스의 내부 데이터에 접근할 수 있는 특수한 함수

 

2. 어떤 경우에 프렌드 함수가 유용한가?

두 개의 객체를 비교할 때 많이 사용된다.

 

3. 두 개의 Vector 객체를 더하는 프렌드 함수를 정의하라.

Complex add(Complex a1, Complex a2)

{

return Complex(a1.re + a2.re, a1.im + a2.im);

}

 

중간 점검 (391p)

벡터 사이의 뺄셈 연산자 를 중복하여 보자.

Vector operator-(Vector& v2)

{

Vector v;

v.x = this -> x + v2.x;

v.y = this -> y + v2.y;

return v;

}

 

2. 두 개의 벡터가 같은지를 검사하는 == 연산자를 중복하라.

bool operator == (const Vector &v1, const Vector &v2)

{

return v1.x == v2.x && v2.y == v2.y;

}

bool operator != (const Vector &v1, const Vector &v2)

{

return ! (v1 == v2);

}

 

3. 문자열을 나타내는 String 클래스를 작성하고 + 연산자를 중복하라.

 

중간 점검 (397p)

1. Date 클래스를 정의하고 여기에 << 연산자를 중복 정의하여 보자.

 

2. Book 클래스를 정의하고 여기에 << 연산자를 중복 정의하여 보자.

 

중간 점검 (405p)

Vector 클래스에서 -- 연산자를 중복 정의해보자. -- 연산자는 xy의 값을 1씩 감소시키는 것으로 하라.

Vector& operator--()

{

x--;

y--;

return *this;

}

 

중간 점검 (409p)

1. MyArray 클래스에 == 연산자를 중복 정의하라.

MyArray operator==()

 

2. MyArray 클래스에 != 연산자를 중복 정의하라. == 연산자를 사용하라.

MyArray operator!=()

 

3. MyArray 클래스에 >> 연산자를 중복 정의하라.

 

중간 점검 (420p)

1. 클래스 Carstring으로 변환하는 변환 연산자를 작성하라.

 

2. 변환 연산자의 위험성은 무엇인가?

자동적인 변환은 편리한 경우도 있지만 자칫하면 아주 발견하기 힘든 버그를 만들기도 한다. 따라서 충분한 의미가 있고 꼭 필요한 경우에만 사용하여야 한다.

 

중간 점검 (421p)

1. 벡터를 나타내는 Vector 클래스에 연산자를 중복하라.

Vector operator-(Vector& s);

 

2. 벡터를 나타내는 Vector 클래스에 ++ 연산자를 중복하라.

 

3. 문자열을 나타내는 String 클래스를 작성하고 << 연산자를 중복하라.