gpt4 book ai didi

C++ 私有(private)复制构造函数问题

转载 作者:太空狗 更新时间:2023-10-29 19:41:59 28 4
gpt4 key购买 nike

我正在构建一个小型 C++ 应用程序,我希望为我的引用持有者创建一个私有(private)复制构造函数。

当我在 main 中使用我的类时,一切正常,但是当我尝试使用 Google Test 对其进行测试时,我收到一条错误消息,指出我的复制构造函数是私有(private)的

TEST (Library, constructorParams) {
Library lib = Library("my Library");
ASSERT_EQ("my Library", lib.getNom());
}

Library.h(我的.cpp中没有拷贝构造函数和赋值运算符的定义)

class Library {
public:
...
private:
...

Library (const Library& obj);
Library & operator=(const Library& obj);
};

为什么我的私有(private)复制构造函数会出错(这可能是我测试中的错误用法?)?

最佳答案

这里

Library lib = Library("my Library");

你正在语义上从 RHS 上构造的临时对象执行复制构造。即使编译器可能会优化复制,复制构造函数也需要可公开访问。

试试这个:

Library lib("my Library");

查看更多信息 copy initialization .

关于C++ 私有(private)复制构造函数问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16265736/

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