본문 바로가기

전체 글

(71)
[C++] 2-6 this 포인터 사용 이유 및 예제 This 포인터 클래스의 멤버 함수 내에서 클래스의 데이터 멤버들을 참조하는 경우에 직접 참조가 가능하기 때문에 객체명을 지정해서 도트 연산자를 사용할 필요가 없다. 멤버 함수는 특정 객체에 대해 호출되기 때문에 컴파일러는 어떤 객체의 데이터 멤버를 참조해야 하는지를 판단할 수 있기 때문이다. this 포인터는 클래스의 멤버 함수에만 전달되기 때문에 프렌드 함수에는 this 포인터가 전달되지 않는다. this 포인터는 연산자를 오버로드 하는 경우에 매우 중요하게 사용된다. 예제 #include using namespace std; class testdata { private: int i, j; public: void input(int a, int b) { this->i = a; // i = a; 와 동일..
[C++] 2-5 클래스 객체 포인터 설명 및 예제 클래스 객체 포인터 일반 변수처럼 클래스 객체를 포인터 형태로 선언할 수 있다. 클래스 포인터를 이용하여 특정 객체의 멤버들을 참조하기 위해서는 도트 연산자(.) 대신에 화살표 연산자 (->)를 사용한다. 클래스 객체 포인터는 클래스 변수나 클래스 배열에 할당된 메모리 영역의 시작 주소를 대입하여 초기화한다. 예제 1 #include #include //문자열 처리 헤더 파일 using namespace std; class child { private: char name[10]; int age; int height; public: void set(char* n, int a, int h); void output(); }; void child::set(char* n, int a, int h) { strcpy..
[C++] 2-4 클래스 배열 초기화 설명 및 예제 클래스 배열 일반 변수처럼 클래스 object도 배열로 선언할 수 있다. 클래스 배열을 선언하고 사용하는 방법은 일반 배열과 동일하다. 클래스 배열을 사용하기 위해서는 클래스 배열명과 첨자를 이용하면 된다. 클래스 배열명[첨자] 예제 #include using namespace std; class myclass { private: int a, b; public: void set(int i, int j) { a = i; b = j; } int sum_return() { return a + b; } }; int main() { myclass ob[3];//클래스 배열의 선언 int n; for (n = 0; n < 3; n++) ob[n].set(n, n + 2);//멤버 함수 호출 for (n = 0; n..