- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在转向智能指针,并努力确保正确使用它们。有很多问题涵盖了何时使用每个问题,但我找不到专门关于 getter 的问题。
我有一个拥有指针的类,我希望其他类能够访问该指针(逐步重构遗留代码)。我想给这个类一个 unique_ptr 因为它只会拥有那个对象,但它们不能被复制。我应该返回对 unique_ptr 的引用,还是只使用 shared_ptr?
class B
{
public:
doAction() {};
};
class A
{
private:
std::unqiue_ptr<B> pointer;
public:
std::unique_ptr<B>& GetPointer()
{
return pointer;
}
};
a.GetPointer()->doAction();
最佳答案
如果其他类需要存储指针并且可能比您的类 A 生命周期更长,请使用 shared_ptr
。
如果不是,您的 B
对象应该在 A 被销毁时被销毁,这是对 unique_ptr
的完全有效使用。
正如评论中所指出的,只有当其他类也被允许更改您的指针时,这才适用。如果不是,则返回一个原始指针。
两者的区别不在于谁有权访问类,而在于谁负责销毁引用的对象。
关于c++ - 这是对 unique_ptr 的误用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45104335/
在考虑如何将 tkinter Frame 和 LabelFrame 子类化以便它们位于正确的父级上时,我发现很多答案表明 super() .__init__ 在子类化时优于 BaseClass.__i
我正在编写一些实用程序,我想将它们作为函数调用。它们是通过往往不会改变的上下文和一些数据来调用的。需要对上下文进行大量耗时的处理,但是一旦完成,用它来暴露数据就相当轻量了。 这显然可以很好地映射到以下
嗨,我正在尝试找到 - 字符,然后将最左边的字符放入字符串中。在这里,我希望 FUPOPER 存储在 program_id_DB 中,但是当我运行此代码时,我的输出结果为: Character '-'
我正在尝试使用 SQL 和 PHP 创建一个登录系统。我有一个包含三个字段的标准数据库:用户名、密码和授权级别。由于某种原因,当我测试代码时,即使我使用正确的访问级别和正确的凭据,登录也会失败。在我将
我对 if 和 else 语句有疑问。 我写了下面的脚本: def questionscp(): stateanswer = raw_input('Do you want to change
我正在编写一个程序来从文件中读取数据,该文件可能采用多种格式之一(实际上是同一格式的不同版本),并且我正在使用反射为每种格式调用适当的函数。假设文件格式是在文件的第一个字节指定的数字: Class D
我花了一整天时间阅读 Fielding's famous dissertation on REST .它在 Conclusion 上说部分: REST, a novel architectural s
我正在做一些非常简单的事情,只是为了习惯 Swift(来自 objc)——我想通过使用 guard 返回链表中的所需节点。声明和 switch陈述。我显然滥用了 guard声明因为我的else子句很大
我使用的是 Visual Studio 2008 并编译了以下代码。 代码1: int* pI = new int[3]; delete pI; 代码2: int* pJ = new int[3];
我是一名优秀的程序员,十分优秀!