otlock
149
2018-11-03 17:26:53
3
569

C++ 객체 배열에 대한 질문입니다.


마땅히 올릴곳을 몰라서 여기에 씁니다. 죄송합니다.

01 #include <iostream>

02 using namespace std;

03

04 class Circle {

05 int radius;

06 public:

07 Circle() { radius = 1; }

08 Circle(int r) { radius = r; }

09 void setRadius(int r) { radius = r; }

10 double getArea();

11 };

12

13 double Circle::getArea() {

14 return 3.14*radius*radius;

15 }

16

17 int main() {

18 Circle circleArray[3];

19

20 circleArray[0].setRadius(10);

21 circleArray[1].setRadius(20);

22 circleArray[2].setRadius(30);

23

24 for (int i = 0; i < 3; i++)

25 cout << "Circle " << i << "의 면적은 " << circleArray[i].getArea() << endl;

26 Circle *p;

27 p = circleArray;

28 for (int i = 0; i < 3; i++) {

29 cout << "Circle " << i << "의 면적은 " << p->getArea() << endl;

30 p++;

31 }

32 }


27 번째 줄에서 어떻게 객체p가 객체배열 circleArray {10,,20,30} 3개를 한번에 받을 수가 있나요?

c언어이후 c++은 좀 생소하네요.

0
  • 답변 3

  • otlock
    149
    2018-11-03 17:27:46

    메모리상 배열은 연결되어있어서 한번에 받을 수 있는건가요?

  • NeuroWhAI
    72
    2018-11-03 18:14:50

    p는 객체라기 보단 포인터라고 합니다.

    메모리에서 연속된 공간에 위치하기 때문에 하나의 위치만 알면 오프셋으로 다른 객체의 위치도 알 수 있는 것이죠.

  • 즐겁게
    714
    2018-11-03 22:59:55

    단순 포인터입니다.

    C++, C 포인터는 동일합니다.


  • 로그인을 하시면 답변을 등록할 수 있습니다.