먼저 두 개의 번역 단위로 구성된 다음 코드를 살펴보십시오. --- foo.h ---
class Foo
{
public:
Foo();
Foo(const Foo& rhs);
void print() const;
private:
std::string str_;
};
Foo getFoo();
--- foo.cp
한다고 가정 내가 복사 생성자는 개인과 이를 구현하지 않는 클래스가 같은 클래스의 일부 멤버 함수에서 이제 class NonCopyable {
// whatever
private:
NonCopyable(const NonCopyable&);
void operator=(const NonCopyable&);
};
내가 개체를 반환하는
큰 벡터를 채우는 함수의 반환 값으로 auto_ptr을 사용하면 함수가 소스 함수가됩니다 (내부 auto_ptr을 만들고 비 반환 값을 반환 할 때 소유권을 넘겨줍니다). const auto_ptr). 그러나 데이터에 액세스하기 위해 auto_ptr을 제거해야하기 때문에 STL 알고리즘에서이 함수를 사용할 수 없습니다. 좋은 예를 들자면 크기 N의 벡터 필
가능한 중복 : Is pass-by-value a reasonable default in C++11? 내가 복사 생략 및 망막 정맥 폐쇄에 대해 데이브 아브라함에 의해 Want Speed? Pass by Value.을 읽고 있어요. 복사 필사가 필요한 이유가 궁금합니다. 나는 (당신이 읽은 거의 모든 C++ 책이 이것에 대해 나에게 이야기했다) 복사를 피하