일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 반복문
- array
- 백준
- Deep Learning
- 함수
- pointer
- OOP
- Python
- 문자열
- 배열
- 포인터
- const
- programming
- 오블완
- Pre-processing
- function
- 파이썬
- Object Oriented Programming
- raw data
- 알고리즘
- string
- Data Science
- assignment operator
- vscode
- C++
- pass by reference
- 티스토리챌린지
- Class
- predictive analysis
- baekjoon
- Today
- Total
목록C++/객체지향 프로그래밍 (OOP) (13)
Channi Studies
Friend는 private 클래스 멤버에 접근권한이 있는 함수 또는 클래스입니다. 여기서 해당 함수 또는 클래스는 접근하고자 하는 클래스의 멤버가 아닙니다. (접근하고자 하는 클래스의 속성 또는 메소드가 아닙니다.) 함수의 경우, 일반적인 함수 일 수도 있고, 혹은 다른 클래스의 멤버 메소드일 수 있습니다. 클래스일 경우, 접근하고자 하는 클래스의 모든 private 멤버들에 대한 접근 권한이 있는 클래스입니다. 한마디로, friend는 클래스의 모든 데이터에 접근 권한을 가진, 클래스 멤버가 아닌 외부 함수 또는 클래스입니다. friend 관계는 friend 키워드를 사용해서 함수 또는 클래스의 정의를 할 때 명시해야 합니다. 또한, friend 관계는 양방향성이 없습니다. A가 B의 friend라고..
클래스 멤버들도 static 개념을 접목할 수 있습니다. 프로그램 내에서 한 클래스에 대해서 현재 존재하는 총 객체의 수를 얻고 싶을때와 같은 상황에서 사용할 수 있습니다. int Player::get_num_players() { return num_players;// num_players는 Player 클래스 내의 static 정수 } 헤더 파일에서 클래스를 선언하고, 특정 attribute를 static 키워드를 붙여서 선언합니다. 하지만 주의해야 할 점은 해당 속성에 대한 초기화는 .cpp 파일에서 행합니다. 클래스의 정의 내에서 바로 초기화를 하면 안됩니다. // Static class members // main.cpp #include #include "Player.h" using namespa..
C++에서는 클래스에도 상수 (const) 개념을 적용할 수 있습니다. const가 적용된 클래스는 속성(attribute)를 변경할 수 없습니다. 그렇다면 속성의 멤버 함수를 호출하면 어떻게 될까요? const Player villain {"Villain", 100, 55}; villain.set_name("Thanos");// COMPILER ERROR std::cout
this 포인터는 객체의 주소값을 가집니다. 그렇기 때문에 *this 로 접근하면 해당 객체의 주소 값을 나타냅니다. 이는 클래스 범위 내에서만 사용이 가능합니다. (파이썬을 공부해보셨다면 self 키워드를 생각하시면 이해가 빠를 것 같습니다.) 예시를 보겠습니다. void Account::set_balance(double balance){ this->balance = balance; } 입력 인자를 balance_input 와 같이 설정하고 balance = balance_input 으로 해도 되지만, 위와같이 객체 스스로의 balance를 this로 표기하여 구분하는 방법도 유용합니다.