如果您有一个对象 B 需要对象 A 的私有(private)成员的拷贝,并且该私有(private)成员被 Pimpl 隐藏,您如何在不暴露内部结构的情况下实现它? //Foo.h
class Foo
{
private :
struct impl ;
impl * pimpl ;
};
// Foo.cpp
struct impl { std::string data; }
//main.cpp
Foo A;
Foo B;
// I want A::pimpl->data copied to B::pimpl->data and I don't want std::string exposed in my Foo header.
最佳答案
// header
class Foo
{
public:
void Copy( const Foo & );
private :
struct impl ;
impl * pimpl ;
};
//cpp file
struct impl {std::string data; }
void Foo::Copy( const Foo & f ) {
pimpl->data = f.pimpl->data;
}
关于c++ - 如何在不暴露内部结构的情况下与 Pimpl 交换私有(private)数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5936752/