티스토리 뷰
this
- JAVA : 자기 자신을 가리키는 레퍼런스
- C++ : 자기 자신을 가리키는 객체 포인터
- 인스턴스 함수의 첫번째 매개 변수에서 존재 -> 객체를 만들어야함
#static : 객체를 만들지 않아도 됨
#인스턴스 메소드 : 객체를 만들어야만 쓸 수 있는 메소드
-명시적으로 사용할 경우
-> 필드명과 지역변수가 같으면 무조건 this.을 써준다
-> 메소드에서 자기 자신을 리턴할때 사용 -> 반복적인 일을 할 때
#static 메소드에서 필드 값을 초기화 할 수 없다 -> this를 만들 수 없기 때문
- 쓰고 싶으면 생략 되어있는 것을 코딩
call by adress
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
using namespace std;
class A {
int a;
public :
A() {
a = 100;
}
static void disp(A *p) { //call by adress
cout << "static method" << endl;
cout << p->a << endl;
}
};
void main() {
//A::disp(); //static method 호출
//A클래스 함수의 disp()
A aa; //선언만 한것
aa.disp(&aa); //메소드를 부를 때 자기 자신의 주소가 넘어감
}
call by reference -> 잘 쓰지 않음
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
using namespace std;
class A {
int a;
public :
A() {
a = 100;
}
static void disp(A &p) { //call by reference
cout << "static method" << endl;
cout << p.a << endl;
}
};
void main() {
//A::disp(); //static method 호출
//A클래스 함수의 disp()
A aa; //선언만 한것
aa.disp(aa); //메소드를 부를 때 자기 자신의 주소가 넘어감
}
'LANGUAGE > C++' 카테고리의 다른 글
[C++] CONST (0) | 2018.03.08 |
---|---|
[C++] STATIC (0) | 2018.03.08 |
[C++] CLASS (0) | 2018.03.07 |
[C++] OVERROADING (0) | 2018.03.06 |
[C++] POINTER ARRAY - 포인터 배열 (1) | 2018.03.06 |
댓글