728x90
[객체 포인터]
:객체 전용 포인터 변수가 있다.
클래스이름 *객체포인터_변수이름;
NewClass Object(10); //멤버변수를 10으로 초기화하며 객체 선언 동시에 생성
NewClass *ptr_Object; //객체 포인터 선언
ptr_Objext = &Object; //지칭할 객체의 주소를 객체 포인터에 넣어줌
-‘객체’에서 자신의 멤버변수나 멤버함수에 접근할 때는 도트 연산자(.) 를 사용한다.
객체.멤버변수
객체.멤버함수
-‘객체 포인터’에서 자신의 멤버변수나 멤버함수에 접근할 때는 ( -> 연산자)를 사용한다.
객체포인터 -> 멤버변수
객체포인터 -> 멤버함수
int main() {
Television SStv;
Television LGtv(40, 10, 0);
Television *ptr_SStv; //객체 포인터 선언 (SStv 지칭)
//일반 객체를 출력 (.)도트 연산자로 멤버 접근
cout << "SStv: " << endl;
cout << "Inch = " << SStv.GetInch()
<< ", Channel = " << SStv.GetChannel()
<< ", Volume = " << SStv.GetVolume() << endl << endl;
//객체를 지칭하는 포인터로 출력 ->연산자로 멤버 접근
ptr_SStv = &SStv;
cout << "SStv: " << endl;
cout << "Inch = " << ptr_SStv->GetInch()
<< ", Channel = " << ptr_SStv->GetChannel()
<< ", Volume = " << ptr_SStv-> GetVolume() << endl << endl;
getchar();
getchar();
return 0;
}
[객체 Swap 하기]
-> 객체포인터를 사용하여 swap
//9주차 수업-객체 swap 하기-(객체 포인터 이용하기)
...
void F_SwapTwoObjectsByAddress(Television *x, Television *y) { //객체 swap 함수(주소 받기)
Television z; //temp용 객체 선언
Television* ptr_z; //객체 포인터 선언
ptr_z = &z;//해당 객체 주소를 객체 포인터에 주기
*ptr_z = *x;
*x = *y;
*y = *ptr_z;
}
int main() {
Television SStv;
Television LGtv(40, 10, 0);
Television SKtv;
F_SwapTwoObjectsByAddress(&SStv, &LGtv); //swap을 위해 객체의 주소를 인수로 전달
//함수 호출되어 반환된 이후 SStv <-> LGtv swap된 상황
//출력 시 두 객체 값 바뀜
getchar();
getchar();
return 0;
}
[객체 배열]
:객체를 원소로 가지는 배열을 객체 배열이라고 함 (배열의 각 요소 = 객체)
클래스이름 객체배열이름 [크기]; //선언
...
int main() {
//객체 배열
Television Television_Array[3] = {
Television(15, 16, 17),
Television(25, 26, 27),
Television(35, 36, 37)
};
for (int i = 0; i <= 2; i++) {
cout << "Television_Array[ " << i << "] : "
<< "Inch = " << Television_Array[i].GetInch()
<< ", Channel = " << Television_Array[i].GetChannel()
<< ", Volume = " << Television_Array[i].GetVolume() << endl;
}
getchar();
getchar();
return 0;
}
[정적 변수] static
: 해당 클래스로부터 생성된 모든 객체가 공유 가능한 ‘정적 변수’
: 클래스 안에서 사용하는 ‘전역 변수’ 라고 생각하면 된다.
-정적 변수의 초기화
int Circle::count = 0; //클래스 외부에서 이 형태로 초기화한다.
728x90
'C++, C언어 > [문법]_C++' 카테고리의 다른 글
C++_11주차_정리 (0) | 2021.12.20 |
---|---|
C++_10주차_정리 (0) | 2021.12.20 |
C++_8주차_정리 (0) | 2021.12.20 |
C++_7주차_정리 (0) | 2021.12.20 |
C++_6주차_정리 (0) | 2021.12.20 |