반응형
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";
반응형