gpt4 book ai didi

c++ - 如何在不暴露内部结构的情况下与 Pimpl 交换私有(private)数据?

转载 作者:太空狗 更新时间:2023-10-29 19:54:33 26 4
gpt4 key购买 nike

如果您有一个对象 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com