본문 바로가기
C++/명품 C++ Programming

[C++/명품 C++ Programming]명품 C++ 4장 연습문제 - 이론 문제

by starfish22 2022. 1. 1.
728x90

1.

(1) Rect *p;

(2) p = &r;

(3) cout<<"폭 : "<< p->getWidth() <<", 높이 : "<< p->getHeight() <<endl;

 

2.

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

(2) cout<<"사각형의 면적 : "<< q->getArea();

(3) delete q;

 

3. 1번 기본 생성자가 선언되어있지 않다.

 

4.

class Rect{
    int width, height;
public:
    Rect() { width = 1; height = 1; }
    Rect(int w, int h) { width = w; height = h; }
    int getWidth() { return width; }
    int getHeight() { return height; }
    int getArea();
};

5.

#include <iostream>
using namespace std;

class Rect{
    int width, height;
public:
    Rect() { width = 1; height = 1; }
    Rect(int w, int h) { width = w; height = h; }
    int getWidth() { return width; }
    int getHeight() { return height; }
    int getArea();
};

int Rect::getArea() {
    return width * height;
}

int main()
{
    Rect r[5] = {Rect(), Rect(2, 3), Rect(3, 4), Rect(4, 5), Rect(5, 6)};
    int sum = 0;
    for (int i = 0; i < 5; i++) {
        sum += r[i].getArea();
    }
    cout << sum;
}

6. 4번 c.getVolume();

 

7. 4번 배열 c는 동적 배열이 아니므로 delete를 안 해도 된다.

 

8.

기본생성자

기본생성자

기본생성자

소멸자

소멸자

소멸자

 

9. 2번 C++ 표준 함수

   1번 C++의 기본 연산자

 

10. delete [] p;

 

11. 3번 static멤버 함수에서는 사용할 수 없다.

 

12. 3번 this는 생성자에서 사용할 수 있다.

 

13.

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

void Location::show(){
    cout << this->width << this->height << endl;
}

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

 

15.

(1) 메모리 누수 발생

void f() {
    char *p = new char[10];
    strcpy(p, "abc");
    delete [] p;
}

(2) 메모리 누수 발생 메모리 누수 없음

(3) 메모리 누수 없음

(4) 메모리 누수 발생

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

16. 1번

 

17.

int n = stoi(s1);
int m = stoi(s2);
cout << n + m;

18. 3번 string클래스는 C++의 표준이다.

 

19.

//string a("My name is Jane."); X
string a = "My name is Jane.";
char ch = a[2];
if(a == "My name is John.") cout << "same";
a += "~~";
a[1] = 'Y';
728x90

댓글