아래 첨자 조작부호가 왜 인용을 되돌려야 하는지 설명하십시오
다시 불러온 커서 조작부호가 인용을 되돌려주지 않으면 대상의 내부 상태만 읽을 수 있습니다. #include <vector>
using std::vector;
#include <iostream>
using std::cout; using std::endl;
class Foo {
public:
Foo(): data(100) { for (int i = 0; i != 100; ++i) data[i] = i; }
int operator[](const size_t);
//const int operator[](const size_t) const;
// other interface members
private:
vector<int> data;
// other member data and private utility functions
};
int Foo::operator[](const size_t index)
{
return data[index]; // no range checking on index
}
int main() {
Foo f;
cout << f[50] << endl; // cout << f.operator[](50) << endl;
f[50] = 90; // f.operator[](50) = 90;
cout << f[50] << endl;
system("pause");
return 0;
}
이 때 아래 표시된 조작부호를 이용하여 데이터의 i50호 요소만 읽을 수 있지만 수정할 수 없고 쓸 수 없다는 것을 발견할 수 있다.
f[50]는 구성원 함수 f.operator[](50)를 호출한 것과 같다. 반환 인용이 아니기 때문에 함수가 되돌아오는 곳에 임시 성형 변수를 만들고 f.data[50]로 초기화하기 때문에 값을 부여할 수 있어도 임시 대상에만 값을 부여한다.그러나 이 함수가 인용으로 되돌아오면 함수 호출이 끝난 후 임시 변수를 만들어서 연산 결과를 저장하지 않고 f.data[50]를 호출이 끝난 곳에 두기 때문에 대상의 내부 상태를 고칠 수 있다.이것이 바로 인용의 좋은 점을 되돌려 주는 것이다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bring application to foreground with a keypress
From Forum Nokia Wiki
Inorder to capture the keys while you application under background you've to override CCoeAppUi::H...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
#include <vector>
using std::vector;
#include <iostream>
using std::cout; using std::endl;
class Foo {
public:
Foo(): data(100) { for (int i = 0; i != 100; ++i) data[i] = i; }
int operator[](const size_t);
//const int operator[](const size_t) const;
// other interface members
private:
vector<int> data;
// other member data and private utility functions
};
int Foo::operator[](const size_t index)
{
return data[index]; // no range checking on index
}
int main() {
Foo f;
cout << f[50] << endl; // cout << f.operator[](50) << endl;
f[50] = 90; // f.operator[](50) = 90;
cout << f[50] << endl;
system("pause");
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bring application to foreground with a keypressFrom Forum Nokia Wiki Inorder to capture the keys while you application under background you've to override CCoeAppUi::H...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.