객체배열
- 객체 기반 배열의 선언은 다음과 같이 한다.
class Simple
{
.
.
.
}
Simple arr[10];
- 이를 동적으로 할당하기 위해서 다음과 같이 선언한다.
Simple * ptrArr = new Simple[10];
이렇게 생성되더라도 생성자는 호출이 되는데 선언과정에서 따로 생성자를 명시하지 못한다.
따라서 다음과 같은 생성자가 반드시 포함되어야 한다.
Simple(){...}
예시)
class Person
{
private:
char *name;
int age;
public:
Person(char * myname, int myage)
{
int len = strlen(myname);
name = new char[len];
strcpy(name, myname);
age = myage;
}
Person()
{
name = NULL;
age = 0;
cout << "called Person()" << endl;
}
}
객체 포인터 배열
- 객체의 주소 값 저장이 가능한 포인터 변수로 이뤄진 배열이다.
class Person{};
int main()
{
Person * parr[3];
parr[1] = new Person();
parr[2] = new Person();
parr[3] = new Person();
parr[1]->ShowAge();
parr[2]->ShowPos();
}
this 포인터
- 멤버함수 내에서 this 라는 이름의 포인터를 사용할 수 있는데 이는 객체 자신을 가리키는 포인터이다.
- 변수이름을 같게 지을 수 있게 해준다.
class ThisClass
{
private:
int num;
public:
void ThisFunc(int num)
{
this->num = 207;
num = 111;
}
};
- 하나의 객체로 반환하는 참조 값을 가지고 멤버함수를 이어서 호출할 수 있다.
class SelfRef
{
private:
int num;
public:
SelfRef(int num):num(num){}
SelfRef& AddNum(int num)
{
this->num += num;
return *this;
}
SelfRef& ShowNum()
{
cout << num << endl;
return *this;
}
};
int main()
{
SelfRef obj(3);
obj.ShowNum().AddNum(7).ShowNum();
return 0;
}
// 출력
// 3
// 10
'프로그래밍 언어 > 열혈 C++' 카테고리의 다른 글
06 const, friend, static, mutable by 윤성우의 열혈 C++ (0) | 2022.03.07 |
---|---|
05 복사 생성자 by 윤성우의 열혈 C++ (0) | 2022.03.06 |
04-3 생성자와 소멸자 by 윤성우의 열혈 C++ (0) | 2022.03.04 |
Chapter 04-2 캡슐화 by 윤성우의 열혈 C++ (0) | 2022.03.03 |
Chapter 04-1 정보은닉 by 윤성우의 열혈 C++ (0) | 2022.03.03 |