반응형

출처 :    https://www.yes24.com/Product/Goods/9328793

1.

// 1)
Rect *p;

// 2)
p = &r

//3)
cout << p->getWidth() << " " << p->getHeight();

 

2.

// 1)
q = new Rect(w, h);

// 2)
cout << q->getArea();

// 3)
delete q;

 

3. ①

기본 생성자가 없기 때문에 오류난다.

 

4. 

Rect클래스의 기본 생성자를 만든다.

Rect();

 

5.

for(int i=0; i<5; i++){
  cout << r->getArea() << endl;
  r++;
}

 

6. ④

c는 객체이므로 (*c).getVolume()은 지정되어 있지 않다. 

 

7. ④

delete는 동적으로 배열을 생성했을 때 사용이 가능하다.

 

8.

기본생성자

기본생성자

기본생성자

소멸자

소멸자

소멸자

 

9. ①

new와 delete는 기본 연산자다.

 

10.

배열로 객체를 동적 생성했으면 반환하는 것도 배열로 반환해야 한다.

delete [] p

 

11. ③

정적멤버함수는 this를 사용할 수 없다.

 

12. ③

생성자에서 사용 가능하다.

 

13.

class Location {
  int width, height;
public:
  Location() { this->width = this->height = 0; }
  Location(int w, int h) {
    this->width = w; this->height = h;
  }
  void show();
};
void Location::show() {
  cout << this->width << this->height << endl;
}

 

14.

할당받은 메모리 주소를 잃어버려서 반환할 수 없을 때 발생한다.

 

15.

1) 메모리 누수가 발생한다.

delete [] p;

2) 메모리 누수가 발생하지 않는다.

3) 동적으로 생성한 배열이 아니므로 메모리 누수가 발생하지 않는다.

4) 메모리 누수가 발생한다

=> for문 실행할 때마다  4byte의 메모리 누수가 발생한다.  그래서 p를 쓸 때마다 반환하는 과정이 필요하다.

void f() {
	int* p;
	for (int i = 0; i < 5; i++)
	{
		p = new int;
		cin >> *p;
		if (*p % 2 == 1) break;
		delete p;
        break;
	}
	delete p;
}

 

16. ①

 

17. stoi

 

18. ③

 

19.  ☆

string a("My name is Jane");
char ch = a[2];
if (a == "My name is John") cout << "same";
a += "~~";
a[1] = "Y";
반응형

+ Recent posts