본문 바로가기

c++ 생성자7

C++ 32 [생성자 멤버변수 초기화리스트] ▣ 생성자에서 멤버변수 초기화 리스트 방법 : 클래스이름::생성자이름() : 멤버변수(값), 멤버변수(값) {} ▣ 매개변수가 있는 생성자 초기화 리스트 방법 : 클래스이름::생성자이름(매개변수) : 멤버변수(매개변수), 멤버변수(매개변수) ▣ { } 괄호에 위치가 멤버 변수 리스트 밑에 있어야 하고 : 초기화 리스트시 콜론을 붙이기 ▣ 그럼 number = 20; length = 20 이런 식으로 대입해도 되는데 초기화 리스트를 사용하는 이유는 (=) 대입은 초기화가 된 이후에 대입을 의미하고 () 리스트초기화는 오브젝트가 만들어질 때 초기화하는 것 다시 말해서 멤버변수 대입 없이 초기화, 상수, 참조변수를 초기화할 수 있다. 일반 대입은 불가능하다. ▣ 예시 const int number; , Pla.. 2023. 10. 18.
C++ 12 [복사생성자] ▣ 객체 복사 방법 : Player p2(p1), Player p2 = p1; ▣ 복사생성자 임의로 정의 : Player::Player(const Player& player) ▣ 객체복사 시 자동으로 복사생성자 호출 ▣ 위에 코드처럼 복사생성자를 임의로 정의하지 않을 경우 디폴트 복사생성자 호출 this->level = player.level; 처럼 기본적으로 원본객체의 멤버변수 포인터를 사본 this객체에 복사 ▣ 복사 생성자를 호출하여 임의로 복사된 객체의 값을 변경할 수 있다. ▣ 객체를 복사할 경우, 객체를 매개변수로 받아올 경우, 객체를 반환할 경우 자동으로 복사생성자를 생성하고 호출한다. 2023. 4. 6.
C++ 03 [클래스, 멤버변수, 멤버함수, 생성자, 소멸자, 접근지정자] ▣ 클래스 : 설계도, 틀 ▣ 객체 : 설계도로 생성된 완성품 ▣ 클래스 선언 : class 클래스이름 { }; , class 키워드를 앞에 붙여야 한다. ▣ 멤버변수 : 클래스내부에서 선언하는 변수 ▣ 멤버함수 : 반환형 클래스이름::멤버함수이름(매개변수){ } 순으로 생성한다. , (::)는 범위지정연산자 ▣ 접근지정자 : public: 클래스 내부, 외부 모두 접근이 가능한 접근지정자 ▣ 객체생성 : 클래스이름(자료형) 변수이름;으로 지정한다. 구조체를 생성하는 것과 동일하다. ▣ p1.Damage(50); 객체에 접근할 때에는. 점을 사용한다. ▣ 생성자 : 객체가 생성될 때 자동으로 한번 호출되는 함수, 생성자는 클래스 이름과 동일하게 작성해야 한다. 생성자는 리턴 타입 반환형을 선언하지 않는다.. 2023. 3. 10.
C++ 14장 [복사생성자] ▣ 안녕하세요. 이번장에서는 복사 생성자(Copy Constructor)를 공부해보겠습니다. 복사 생성자란 다른 객체의 내용을 복사해서 만드는 생성자를 의미합니다. 다시 말해 객체를 복사해서 사용한다라고 생각하시면 됩니다. ▣ 복사 생성자는 컴파일러에 의해 자동으로 만들어집니다. 그리고 모든 멤버 변수를 자동 복사합니다. 직접 코드를 작성하며 공부해보겠습니다. ▣ 먼저 클래스를 생성하고 멤버 함수를 선언했습니다. 코드를 작성하다가 주의해야한껀 private으로 멤버 변수를 지정했기 때문에 this->num = n를 기본 생성자에 넣어주셔야 내가 기본생성자 호출로 받아온 매개변수 값을 멤버 변수에 대입할 수 있습니다. ▣ 그리고 이렇게 Calculator c2(c1), Calculator c3 = c1 코.. 2022. 11. 11.
C++ 5장 [클래스3] ▣ 안녕하세요. 이번장에서는 클래스 3번째 시간으로 소멸자를 공부해보도록 하겠습니다. ▣ 소멸자는 객체가 소멸되는 시점에서 자동으로 호출되는 클래스 멤버 함수를 의미합니다. 저번장을 이어서 복습하면 생성자는 객체가 생성되었을 때 소멸자는 소멸되었을 때 호출하는 멤버 함수들입니다. 소멸자를 만들려면 클래스 이름 앞에 ~ 기호를 붙여야 합니다. 또 소멸자는 한 개만 존재해야 합니다. 만약 소멸자가 선언되지 않으면 기본 소멸자가 자동으로 생성됩니다. 그리고 소멸자는 리턴 타입이 없습니다. 생성자처럼 반환형이 없다는 의미입니다. 소멸자의 목적은 마무리 작업을 할 때 사용합니다. 그럼 코드를 작성하며 공부해보겠습니다. ▣ 소멸자를 생성하려면 ~Calculator() 코드에서처럼 클래스 앞에 ~ 기호를 넣으시면 됩.. 2022. 10. 7.
C++ 4장 [클래스2] ▣ 안녕하세요. 이번장에서는 클래스에 생성자에 대해 공부해보도록 하겠습니다. 생성자는 클래스가 객체로 생성될 때(정의할 때) 자동으로 실행되는 함수(생성자)라고 생각하시면 됩니다. 생성자는 오직 한 번만 실행합니다. 생성자 함수의 이름은 클래스 이름과 동일하게 작성해야 합니다. 생성자 함수의 반환형(리턴 타입)을 선언하지 않습니다. 단 함수에 매개변수는 넣을 수 있습니다. ▣ 생성자를 쓰는 이유는 객체가 생성될 때 필요한 초기화 작업을 하기 위함입니다. 이제 생성자를 코드로 공부해보겠습니다. ▣ 생성자 함수는 Calculator::Calculator()처럼 클래스와 동일하게 이름을 지정해주면 됩니다. 여기서 중요한 건 일반 함수와 다르게 반환형이 없는 점 주의해주세요. 코드를 다 작성하셨다면 이제 메인 .. 2022. 10. 6.
C++ [클래스, 생성자, 소멸자] ▣ 안녕하세요. 이번장에서는 클래스에 생성자와 소멸자에 대해 공부해보겠습니다. ▣ MyClass라는 클래스를 생성해주시고, public에 MyClass()와 ~MyClass() 함수를 만들어보겠습니다. MyClass()는 클래스가 생성되었을 때 실행되는 함수이고, ~MyClass()는 클래스를 생성한 함수가 끝나게 되면 소멸되는 함수입니다. ▣ 메인에서 MyClass my;로 정의하고 코드를 실행하면 메인 시작 -> 생성자 -> 메인 끝 -> 소멸자 이렇게 출력되는 걸 확인할 수 있습니다. 여기서 중요한건 코드가 어떤 순서로 흘러가는지 출력 함수로 확인해보는 게 중요합니다. ▣ 이번에는 char *p 포인터를 선언해주시고, p = new char[100000] 메모리를 할당합니다. 그리고 소멸자에서 de.. 2022. 4. 19.