2024/11/02 2

복사 생성자

복사 생성자복사 생성자란 무엇일까?Java에는 없는데 C++에는 있는 기능이다.그럼 C에는 있을까? 없다.OOP의 개념이 있어야 생성자가 있다.생성자라는 개념이 있으려면 OOP가 있어야 한다. 그럼 Java는 OOP인데 왜 복사 생성자가 없냐?클론 함수 ( = clone()) 이런 걸 사용해서 쓴다. 그럼 복사 생성자는 어떻게 만들까? 자신과 같은 클래스에 있는 개체를 매개변수로 받는 코드를 짜면 된다. 즉, 매개변수가 다른 개체 그것도나랑 똑같은 클래스에 속한 개체면 복사 생성자이다. // Vector.hclass Vector{public: Vector(const Vector& other);private: int mX; int mY;};// Vector.cppVector::Vector(const Vec..

구조체와 클래스의 차이

구조체와 클래스의 차이 중 가장 먼저 설명할 수 있는 것은기본 접근 권한이 다르다는 것이다. struct 는 기본적으로 public이고,class 는 기본적으로 private이다. 컴퓨터는 struct와 class을 구분할까?-> 어셈블리단에서는 이 둘의 차이가 있을까? 안난다.C에 있던 기능이 다른 언어에 있다면, 고급 엔지니어가 만든 기능이다. 그럼 컴퓨터는 struct를 알까?모른다. 그룹개념도 없다 따로따로 노는 건데 사실은,메모리 어디에 접근한다 일 뿐이지,클래스와 구조체는 거의 차이없이 돈다. 근데 컴파일러는 구분할까?구분한다.컴파일러 에러가 잡아내기 때문에컴파일러는 private와 pubilc의 차이점을 안다. 구조체에 관한 코딩표준(기본) C++에서는 구조체를 클래스처럼 쓸 수 있다.하지만..