초기화 리스트는 쉽게 말해서 클래스를 만들 때 초기화를 시켜주는 과정에서 this를 사용해서 하지 않고 리스트를 통해 초기화 시키는 걸 말함. #include class A { private: int a; public: A(int a) : a(a) { } int getA() { return a; } }; int main() { A *tmp = new A(2); std::cout getA()
C++/C++ 클래스, 생성자 초기화 리스트
→ C++에서 this는 객체 내부에서 자신을 가리키는 포인터. this 포인터는 클래스의 멤버 함수 내부에서 사용되며, 현재 호출 중인 멤버 함수가 속한 객체를 가리킨다. 이를 통해 멤버 함수 내부에서 객체의 멤버 변수와 다른 멤버 함수에 접근할 수 있다. this를 사용할 때 멤버 변수에 접근: this 포인터를 사용하여 멤버 함수 내에서 현재 객체의 멤버 변수에 접근할 수 있다. 이는 멤버 변수와 지역 변수의 이름이 충돌하는 경우 유용. class MyClass { public: int x; void setX(int value) { this->x = value; // this 포인터를 사용하여 멤버 변수 x에 접근 } }; 2. 멤버 함수 호출: 멤버 함수 내에서 다른 멤버 함수를 호출할 때 thi..
생성자(constructor) → 공을 생산하는 기계가 있음. 일반적으로 흰 공을 생산하다가, 빨간색 페인트를 주입하면 빨간공이, 파란색 페인트를 주입하면 파란공이 나온다. 생산 시점에 원하는 색의 페인트를 주입하면 다양한 색의 공을 생산 가능 클래스에서 객체를 생성할 때 객체를 초기화 가능하다. 공을 생산할 때 공의 색을 바꿀 수 있다는 말과 동일함. 클래스는 객체가 생성될 때 자동으로 실행되는 생성자(constructor)라는 특별한 멤버 함수를 통해 객체를 초기화 한다. 한 클래스에 여러 개의 생성자를 둘 수 있으나, 이 중 하나만 실행됨. 생성자의 특징 1. 생성자의 목적은 객체가 생성될 때 필요한 초기 작업을 위함이다. 예를 들어 멤버 변수의 값을 특정 값으로 설정하거나, 메모리를 동적 할당 받..
Class 안에 있는 private과 public 차이 C++에서 private와 public은 클래스 멤버들의 접근 제어를 지정하는 키워드이다. 이 두 접근 제어 지시자는 클래스 내부의 멤버 변수와 멤버 함수가 외부에서 어떻게 접근 가능한지를 결정한다. private: private으로 지정된 멤버 변수나 멤버 함수는 클래스 내부에서만 접근 가능합니다. 즉, 클래스 내부의 다른 멤버 함수에서는 접근할 수 있지만 클래스 외부에서는 접근할 수 없다. private으로 선언된 멤버들은 클래스의 구현 내부에 있으므로 외부에서 직접 접근하거나 수정할 수 없다. 이는 정보 은닉(information hiding)의 개념과 관련이 있어서 클래스의 내부 상세 구현을 숨기고 오직 공개된 인터페이스를 통해 상호작용하도록..
클래스란? 쉽게 말하자면 C의 구조체에서 확장된 C++의 구조체의 또 다른 이름이다. 클래스는 변수와 함께 함수까지도 포함시킬 수 있다. 그러면 구조체와 클래스의 차이점이 무엇일까? 구조체와 클래스의 차이점은 기본 접근 제한자의 차이일뿐, 그 이상 다른 게 없다. 구조체 같은 경우는 기본 접근 제한자가 public이며, 클래스의 기본 접근 제한자는 private으로 제한되어 있다. ‘둘다 동일한 기능인데 왜 사라지지 않아’ 라는 질문 → C언어와의 하위 호환성을 위해서 남겨둠. 우리가 C언어에서 보았던 구조체 예제에서, struct를 class로만 바꾸어 주어도 됨. 조심해야할 부분 → 기본 접근자가 다름, 무작정 클래스에 접근하려하면 컴파일러가 에러를 내보낼 수도 있다. 이제 객체지향 프로그래밍(OOP..