디자인 모드 의 프 록 시 모드 (Proxy)
2195 단어 proxy
지능 지침 실현 에 주의해 야 할 문제:
1. 구조 함 수 는 디 스 플레이 구 조 를 가리킨다.
2. 구조 함 수 를 복사 하여 이전 지침 을 끊 은 다음 이전 지침 의 값 으로 현재 지침 을 초기 화 합 니 다.
3. 할당 함 수 는 이전 지침 을 끊 은 다음 현재 지침 이 가리 키 는 메모 리 를 풀 고 마지막 으로 이전 지침 으로 현재 지침 을 할당 해 야 합 니 다.
4. 매개 변 수 는 인용 으로 임시 대상 이 생기 지 않도록 합 니 다.
코드 는 다음 과 같 습 니 다:
#include <iostream>
#include <string>
/************************************************************************/
/* */
/************************************************************************/
template<typename T>
class auto_ptr
{
public:
explicit auto_ptr(T *pointer = NULL):m_pointer(pointer){}
auto_ptr(const auto_ptr<T>& rhs):m_pointer(rhs.release()){}
auto_ptr<T>& operator=(auto_ptr<T>& rhs)
{
if (this != &rhs)
{
m_pointer = reset(rhs.release());
return *this;
}
}
T& operator*(){return *m_pointer;}
T* operator->(){return m_pointer;}
T* get() const
{
return m_pointer;
}
T* release()
{
T* oldpointer = m_pointer;
m_pointer = NULL;
return oldpointer;
}
void reset(T *p = NULL)
{
if (p != m_pointer)
{
delete m_pointer;
m_pointer = p;
}
}
private:
T *m_pointer;
};
int main()
{
return 0;
}
큰 그림 열기 지연
#include <iostream>
#include <string>
using namespace std;
class Image
{
public:
Image(string name):m_imagename(name){}
virtual void show()
{
}
protected:
string m_imagename;
};
class BigImage:public Image
{
public:
BigImage(string name):Image(name){}
virtual void show()
{
cout << m_imagename <<" show big image" <<endl;
}
};
class BigImageProxy:public Image
{
public:
BigImageProxy(string name):Image(name),m_pimage(0){}
virtual void show()
{
if (m_pimage == NULL)
{
m_pimage = new BigImage(m_imagename);
}
m_pimage->show();
}
private:
BigImage* m_pimage;
};
int main()
{
Image *pimage = new BigImageProxy("big.jpg");
pimage->show();
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Oxylabs와 셀레늄 프록시 통합웹 스크래핑에 관심이 있다면 웹 사이트 테스트 등을 위해 웹 브라우저 상호 작용을 자동화하는 데 도움이 되는 오픈 소스 도구인 에 대해 들어보셨을 것입니다. 이 테스트 프레임워크는 버튼 클릭, 스크롤 등과 같은 여러...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.