본문 바로가기

전체 글

(6)
[명품 C++] 7. 프렌드와 연산자 중복 7.1 C++ 프렌드 개념 클래스 외부에 작성된 함수를 클래스 내에 friend 키워드로 선언하여 클래스의 멤버 함수와 동일한 접근 자격을 부여할 수 있다 프렌드 함수는 클래스의 멤버인 것처럼 클래스의 모든 변수나 함수에 접근할 수 있다 프렌드 함수를 선언할 수 있는 경우 - 클래스 외부에 작성된 함수를 프렌드로 선언 - 다른 클래스의 멤버 함수를 프렌드로 선언 - 다른 클래스의 모든 멤버 함수를 프렌드로 선언 선언 방법 class Rect{ .... friend bool equals (Rect r, Rect s); //equals 를 프렌드 함수로 선언 } 예제 7-1) #include using namespace std; class Rect; bool equals(Rect r, Rect c); cla..
[명품 C++] 6. 함수 중복과 static 멤버 6.1 함수 중복 함수 중복은 다형성의 한 사례 조건 1. 중복된 함수들의 이름이 동일하여야 한다 2. 중복된 함수들은 매개 변수 타입이나 매개 변수의 개수가 달라야 한다 3. 함수 중복에 리턴 타입은 고려되지 않는다 좋은 점 작성이 편리하고 이름을 구분지어서 기억할 필요가 없다 int sum(int a, int b, int c){ //1 return a+b+c; } double sum(double a, double b){ //2 return a+b; } int sum(int a, int b){ //3 return a+b; } int main(){ cout
[명품 C++] 5. 함수와 참조, 복사 생성자 5.1 함수의 인자 전달 방식 리뷰 - 값에 의한 호출 : 호출하는 코드에서 넘겨주는 실인자 값이 함수의 매개 변수에 복사되어 전달 - 주소에 의한 호출 : 주소를 직접 포인터 타입의 매개 변수에 전달 받음 값에 의한 호출로 swap 사용 - m,n 값에 변화가 존재하지 않음 #include using namespace std; void swap(int a, int b) { int tmp; tmp = a; a=b; b = tmp; } int main(){ int m=2, n=9; swap(m,n); cout
[명품 C++] 4. 객체 포인터와 객체 배열, 객체의 동적 생성 4.1 객체 포인터 객체에 대한 포인터 변수 선언 형식 Circle *p; 객체의 주소는 객체 앞에 &연산자를 사용 p = &donut; //p에 donut의 객체 주소 저장 객체에 접근하는 방식 : ->연산자 사용 d = donut.getArea(); //객체 이름으로 멤버 함수 호출 d = p->getArea(); //포인터로 객체 멤버 함수 호출 4.2 객체 배열 객체 배열 : 원소가 객체라는 점을 빼면 기본 타입의 배열을 선언하고 활용하는 방법과 동일 배열이 소멸될 때 원소 객체마다 소멸자가 호출된다. #include using namespace std; class Circle{ int radius; public: Circle() {radius = 1; } Circle(int r) { radius..
[명품 C++] 3. 클래스와 객체 3.1 객체에 대한 이해 캡슐화 : 객체의 구성 요소들을 캡슐로 싸서 보호하고 볼 수 없게 하는 것 객체들은 서로 정보를 교환하고 통신하기 위해 일부 요소의 공개 노출이 필요하다 객체 구성 요소 - 멤버 변수 : 객체의 상태를 나타내는 속성 - 멤버 함수 : 행동을 구현한 코드 C++ 클래스와 객체 클래스 : 객체를 정의하는 틀 혹은 설계도, 클래스에 멤버 변수와 멤버 함수를 선언한다 ex) 클래스는 붕어빵 틀, 객체는 붕어빵 클래스는 컴파일이 끝나면 사라지지만, 프로그램은 실행 중에 객체를 생성하여 멤버 변수에 값을 저장하기도 하고 멤버 함수 코드를 실행하기도 한다. 클래스를 통해 생성된 객체들은 별도 공간에 생성된다. 3.2 클래스 만들기 class 키워드 사용 : 클래스 선언부 + 클래스 구현부 클..
[명품 C++] 2.C++ 프로그래밍의 기본 1. main() 함수 - C++ 프로그램의 실행 시작점 - 리턴 타입은 int - main() 함수에는 return 0; 을 생략 가능하다 2. #include - include width >> height; // 23..