-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
17.5 강의 질문있습니다.
22.12.28 16:51 작성 조회수 176
0
int main()
{
string str1("one");
string str2;
str2 = str1; //궁금한 부분.
str2 = "two";
cout << str1 << endl;
cout << str2 << endl;
}
를 했을 때 출력 값으로 str1 은 one 이 나오고 str2는 two 가 나옵니다.
근데 str2 = str1; 은 얕은 복사로 서로 같은 주소를 가르킨다고 생각이 되는데
얕은 복사가 되지 않은 이유는
c++에서 overload로 = 을 깊은 복사로 만들어주었기 때문이라고 이해하면 될까요?
아니면 다른 문법적 이유가 있어서 얕은 복사가 되지 않는 건가요?
답변을 작성해보세요.
0
강민철
2022.12.30
음,
복사의 종류 여부를 떠나 그 바로 다음 줄
str2 = "two";
로써 str2에 "two"를 대입하였기 때문에
str2가 two를 출력하는 것은 자명해보입니다.
답변 1