作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我试图返回一个 CStringArray:在我的“.h”中,我定义了:
Private:
CStringArray array;
public:
CStringArray& GetArray();
在。我有:
CQueue::CQueue()
{
m_hApp = 0;
m_default = NULL;
}
CQueue::~CQueue()
{
DeleteQueue();
}
CStringArray& CQueue::GetArray()
{
return array;
}
我试图从另一个文件调用它:
CStringArray LastUsedDes = cqueue.GetArray();
我猜是因为上面这行我得到了错误:
error C2248: 'CObject::CObject' : cannot access private member declared in class 'CObject'
最佳答案
问题出在这一行
CStringArray LastUsedDes = cqueue.GetArray();
即使您在 GetArray()
函数中返回对 CStringArray
的引用,也正在上面的行中创建数组的拷贝。 CStringArray
本身没有定义复制构造函数,它派生自 CObject
,它有一个私有(private)复制构造函数。
将行改为
CStringArray& LastUsedDes = cqueue.GetArray();
但请注意,LastUsedDes
现在指的是包含在您的类实例中的同一个 CStringArray
,并且对其中一个所做的任何更改都将在另一个中可见。
如果您需要返回数组的本地拷贝,您可以使用 Append
成员函数来复制内容。
CStringArray LastUsedDes; // default construct the array
LastUsedDes.Append( cqueue.GetArray() ); // this will copy the contents of the
// returned array to the local array
关于c++ - 返回 CStringArray 给出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11833496/
我有一个经典的 ASP 页面 (VBscript),它在服务器端生成 XML,然后 Response.Writes。该页面根本没有客户端。 但是我需要将其转换为 JSON。由于我找不到有效的 ASP
我想从客户端应用程序的 HDFS 中读取特定的 SequenceFile。我可以使用 SequenceFile.Reader 来做到这一点,它工作正常。但是是否也可以通过分析抛出的 IOExcepti
我是一名优秀的程序员,十分优秀!