C++

C++ 8주차

kimbh 2023. 11. 2. 16:48

1. Saramin사이트 IT 기술 스택중에 제일 중요하다고 생각하는 부분에 색 넣기

2.private과 public 멤버 함수의 접근 방법

private함수는 외부에서 접근할 수 없지만. public 함수는 외부에서 접근이 가능해 public함수를 이용해서 private함수에 접근하는 방법이다.

3. 멤버함수를 내부가 아닌 외부로 출력하는 방법

*주의* - 외부 멤버함수를 사용할려면 15줄에서나 18줄에 getAge()와 setAge(int a)앞에 *반드시* 클래스 객체명을 붙여야 한다. Ex)Dog::getAge()

8줄에 잘못된 내용이 있어서 정정함.

8줄은 클래스 정의이지 객체 생성이 아니고. 객체 생성은 24줄에 Dog haapy. happy라는 객체를 생성함.

4.객체 멤버의 호출 방법

" . "은 일반 객체로 접근할때 사용하고, " -> "는 간접참조연산자 즉. 포인터 객체로 접근할 때 사용한다.

 

5.많이 사용하는 문자열 관련 함수 4가지.

위에 4가지 함수는 문자열 관련으로 많이 사용하는 함수이기 때문에 알고 있어야 함.
python Tutor 사이트는 시각화 해서 보여주는 사이트로 소스가 어떻게 작동하는지 쉽게 보여주는 사이트이다.

12줄에 strcpy라는 문자열 함수를 사용했는데 문자열 함수를 사용하기 위해서 #include<string.h>을 꼭 쓰고 사용해야 한다.

배열은 string copy 함수로 배열을 복사하고 , string은 그냥 대입하면 복사가 된다.
char형에 문자열을 리턴하고 싶으면 const를 사용해야한다. Ex)const char*를 사용.
객체도 배열을 이용해서 만드는 방법이다. 배열을 이용하지 않는다면 dd라는 객체에 한마리만 추가되지만 배열을 이용해서 dd[5]를 하게 되면 dd라는 강아지가 5마리가 된다. 19줄에 set Age(1)를 이용해서 5마리의 강아지가 다 1살로 통합시키는 부분이다.
포인터를 이용해 setAge()와getAge()를 사용해서 출력함. happy.setAge(5)로 happy와 pd의 age값을 5로 바꿨고, pd -> setAge(2) 포인터로 happy와 pd의 age값을 2로 변경시킴.

6.생성자와 소멸자

생성자와 소멸자는 멤버함수임.

 

멤버변수의 초기화 하는 방법임.
Dog 클래스에는 생성자가 없음 Dog(){}같은 생성자를 자동으로 만들어 줌 이를 implicitly generated constructor라 함 묵시적(자동)으로 만들어지는 생성자

 

(생성자 예시)

생성자는 객체가 만들어질때마다 매번 생성자가 호출된다.

(private멤버변수를 특정 값으로 초기화하는 생성자 예시)

중요.

(외부 함수로 내보내서 출력하는 방법 예시)

(C++에서 변수 초기화 방법 예시)

(생성자에 매개변수로 이용한 멤버변수 초기화 방법 예시)

18~19줄 주석 참고.
멤버변수를 다르게 초기화 하는 방법임.

(소멸자 예시)

객체가 사라질때 자동적으로 호출됨. 객체가 두 객체가 있기 때문에 "소멸이" 두 번 출력됨.

7. This 포인터

 

(this 포인터 예시)

8. 기본 소스

#include <iostream>
using std::cout;
using std::cin;
using std::string;
using std::endl;
class Dog {
private:
int age;
public:
Dog(int age) { this->age = age; }
~Dog() { cout << "소멸\n"; }
int getAge() { return age; }
void setAge(int age) {
this->age = age;//this 포인터 사용
//대부분 이렇게 많이 사용함.
}
};
int main()
{
Dog happy(1), h(2);//생성자에 매개변수가 있으면 객체
//다음에 괄호안에 매개변수에 넘긴 값을 써 넘긴다.
cout << happy.getAge() << h.getAge();
happy.setAge(5);
cout << happy.getAge();

 

}

다음부터 이 기본 소스를 이용해서 응용할 예정임.

'C++' 카테고리의 다른 글

C++ 프로그래밍 11주차  (0) 2023.11.16
C++ 10주차  (1) 2023.11.09
C++7주차  (0) 2023.10.19
6주차  (0) 2023.10.12
5주차  (0) 2023.10.05