검색결과 리스트
글
영역 결정 연산자(Scope Resolution Operator, ::)
C언어에서는 지역변수가 전역변수 보다 우선 순위를 갖는다. 이 지역변수의 사용영역(Scope) 밖에서만 전역변수에 접근을 할 수 있다.
하지만, C++에서는 같은 변수명을 갖는 지역변수의 사용영역 안에서도 영역 결정 연산자 ::를 붙여 전역변수에 접근을 가능하게 하고 있다.
int var = 100;
int main()
{
int var = 200;
}
cout << ::var << endl;
실행결과
100
MFC 프로그래밍 팁
영역 결정 연산자는 함수명 앞에 사용될 수 있다. 클래스의 멤버함수를 사용할 때 클래스명 다음에 영역 결정 연산자가 사용될 때는 해당 클래스에 속해 있는 함수임을 나타낸다.
CWnd::MessageBox(_T("Hello~"));
위 코드는 MessageBox 함수가 CWnd 클래스에 속해 있는 멤버함수라는 의미가 된다.
그러나 같은 이름으로 된 전역함수인 경우에는 함수명 앞에 그냥 영역 결정 연산자를 붙인다.
::myFunction( ~ );
'C/C++' 카테고리의 다른 글
유용한 매크로 및 함수(콘솔) (0) | 2013.07.04 |
---|---|
private, public, protected 공부 (0) | 2013.05.28 |
[C/C++]도형 출력(삼각형,피라미드,다이아몬드) (0) | 2013.02.20 |
설정
트랙백
댓글
글
private, public, protected 공부
■ private : 이 속성을 가지는 멤버는 외부에서 액세스할 수 없으며, 구조체의 멤버 함수만 액세스할 수 있다.
외부에서는 프라이비트 멤버를 읽을 수 없음은 물론이고 존재 자체도 알려지지 않는다.
■ public : 이 속성을 가지는 멤버는 외부로 공개되어 누구나 읽고 쓸 수 있고 함수의 경우는 호출할 수 있다.
구조체가 자신의 속성이나 동작을 외부로 공개하는 수단이 되며 퍼블릭 멤버를 소위 인터페이스라고 한다.
■ protected : private와 마찬가지로 외부에서는 액세스할 수 없으나 단, 상속된 파생 클래스는 이 멤버를 액세스할 수 있다.
프라이비트 멤버는 파생 클래스에서조차도 참조할 수 없으며 오로지 자신만이 이 멤버를 참조할 수 있다는 점이 다르다.
struct Test{
private:
int num;
char str;
void Initialize();
public:
int i;
int j;
void func(int n);
protected:
float k;
};
void main()
{
Test test;
test.num=1; // 에러
test.i=10; // 대입 가능
test.func(3); // 호출 가능
test.Initialize(); // 에러
}
'C/C++' 카테고리의 다른 글
유용한 매크로 및 함수(콘솔) (0) | 2013.07.04 |
---|---|
영역 결정 연산자(Scope Resolution Operator, ::) (0) | 2013.05.28 |
[C/C++]도형 출력(삼각형,피라미드,다이아몬드) (0) | 2013.02.20 |
설정
트랙백
댓글
글
컬러공간 변환
BGR >> GRAY
// BGR -> GRAY
Mat ColorToGray(Mat& src)
{
Mat gray;
assert(src.type() != CV_8UC3);
vector<Mat> channels;
split(src,channels);
gray = (0.333 * channels[0]) + (0.333 * channels[1]) + (0.333 * channels[2]);
return gray;
}
'OpenCV > my_source' 카테고리의 다른 글
컬러 추출후 해당 컬러 보여주기2 (0) | 2013.09.03 |
---|---|
컬러 추출후 해당 컬러 보여주기 (0) | 2013.09.03 |
[콘솔]마우스 이벤트 (0) | 2013.08.20 |