C++

C++ Class 의 Copy Constructor에는 default copy constructor이 사용하는 Shallow Copying과 Deep Copying이 있습니다. 일반적으로는 얕은 복사, shallow copying을 사용해도 괜찮지만, 얕은 복사가 문제를 야기할 때가 있습니다. 이번 포스트에서는 각각 방법을 정리해보겠습니다. Shallow Copying - 얕은 복사 Shallow copy는 컴파일러가 기본적으로 생성해주는 default copy constructor가 행하는 방법이기도 합니다. Shallow copying은 복사 대상의 객체의 모든 속성을 지닌 새로운 객체를 생성합니다. 여기서 주의해야 할 점은 포인터가 객체에서 사용될 때 입니다. 복사의 과정에서 포인터는 복사되지만, ..
클래스를 선언할 때, 내부에서 public: 키워드를 작성하지 않으면 컴파일 에러가 뜨는 경험이 있을 겁니다. 이것은 클래스에서 매우 중요한 접근 제한자(Access Modifier) 라는 개념에 해당합니다. C++ 접근 제한자에는 기본적으로 3가지의 접근 제한자가 존재합니다. 각각 public, private, protcted 입니다. public 접근 제한자는 코드 내의 모든 곳에서 접근이 가능합니다. private 접근 제한자는 다른 클래스 멤버들이나 friend들에게만 접근이 가능합니다. protected 접근 제한자는 상속(inheritance)와 함께 사용되는 접근 제한자입니다. syntax는 다음과 같습니다. class Class_Name{ public: // private: // prote..
객체는 꽤나 큰 메모리를 요구하기 때문에, Pass by value 방법 혹은 return 값으로 특정 객체를 활용하는 함수나 메소드는 큰 용량을 낭비하게 됩니다. 이럴 때, pass by reference 방법을 사용하면 이를 방지할 수 있습니다. // main.cpp #include "Practice.h" #include using namespace std; int main() { Player ricky("Ricky", 100, 0); Player super_enemy = create_super_enemy(); Player ricky2 = another_hero(ricky); return 0; } // Practice.cpp #include "Practice.h" #include #include us..
·C++/기타
cin.ignore()은 입력 버퍼를 비우는 역할을 합니다. 예를 들어, cin으로 1000 5000을 받았을 때 다음 cin은 입력을 하지도 않았는데 5000 들어갑니다. 버퍼에 5000 값이 남아있기 때문입니다. 그럴 때 cin.ignore()으로 버퍼를 비우고 나서 다시 입력을 받으면 이런 현상이 방지됩니다.
Ricky U. Lee
'C++' 카테고리의 글 목록 (4 Page)