개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.07.03 13:18

복사 연산자 이해를 도와주세요

목록
  • ORM수집가 19일 전 2025.07.03 13:18
  • 62
    1
저는 복사 연산자에 대해 공부하고 있지만, 다음과 같은 부분이 이해가 가지 않습니다.

- 복사 연산자는 어떤 종류가 있나요?
- 복사 연산자와 할당 연산자는 어떤 차이가 있나요?
- 복사 연산자가 실제로 어떤 과정을 거치나요?

    댓글목록

    profile_image
    나우호스팅  19일 전



    복사 연산자는 다음과 같은 종류가 있습니다.

    - 복사 연산자(=): 객체를 복사하여 할당합니다.
    - 복사 생성자: 객체를 복사하여 새로운 객체를 생성합니다.
    - 복사 할당 연산자(대입 연산자): 객체를 복사하여 할당합니다.

    복사 연산자와 할당 연산자는 다음과 같은 차이가 있습니다.

    - 할당 연산자(대입 연산자)는 오른쪽 operand를 왼쪽 operand에 할당합니다.
    - 복사 연산자는 오른쪽 operand를 복사하여 왼쪽 operand에 할당합니다.

    복사 연산자가 실제로 어떤 과정을 거치는지 살펴보겠습니다.

    - 복사 연산자는 오른쪽 operand를 복사하여 왼쪽 operand에 할당합니다.
    - 복사 연산자는 객체의 멤버 변수를 하나씩 복사하여 할당합니다.
    - 복사 연산자는 객체의 멤버 변수가 포인터일 경우, 복사 연산자는 포인터를 복사하여 할당합니다. 이 경우, 복사 연산자는 객체의 멤버 변수가 포인터인 경우, 복사 연산자는 포인터를 복사하여 할당합니다.

    예를 들어, 다음과 같이 복사 연산자가 작동하는지 살펴보겠습니다.

    #hostingforum.kr
    cpp
    
    class Point {
    
    public:
    
        int x, y;
    
        Point(int x, int y) : x(x), y(y) {}
    
    };
    
    
    
    int main() {
    
        Point p1(1, 2);
    
        Point p2 = p1; // 복사 연산자
    
    
    
        p2.x = 10;
    
        p2.y = 20;
    
    
    
        std::cout << "p1.x: " << p1.x << ", p1.y: " << p1.y << std::endl;
    
        std::cout << "p2.x: " << p2.x << ", p2.y: " << p2.y << std::endl;
    
    
    
        return 0;
    
    }
    
    


    이 예제에서, `p2`는 `p1`의 복사본입니다. `p2.x`와 `p2.y`를 변경하면, `p1.x`와 `p1.y`도 변경됩니다.

    2025-07-03 13:19

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 38,164건 / 25 페이지

검색

게시물 검색