返回CStringArray会给出错误

电脑杂谈  发布时间:2020-03-23 17:05:48  来源:网络整理

cstring 数组 声明_c#声明数组_声明数组元素

问题

我正在尝试返回CStringArray: 在我的“ .h”中定义:

    Private:
    CStringArray array;
    public:
    CStringArray& GetArray();

输入. 我有cpp:

    CQueue::CQueue()
    {
    m_hApp = 0;
    m_default = NULL;
    }
    CQueue::~CQueue()
    {
     DeleteQueue();
    }
    CStringArray& CQueue::GetArray()
    {
     return array;   
    }

从另一个文件中,我尝试通过以下方式调用它:

    CStringArray LastUsedDes = cqueue.GetArray();

cstring 数组 声明_声明数组元素_c#声明数组

我想是因为上面的行我得到了错误:

   error C2248: 'CObject::CObject' : cannot access private member declared in class 'CObject'

解决方案

问题就在这条线上

CStringArray LastUsedDes = cqueue.GetArray();

即使在GetArray()函数中返回对CStringArray的引用,也要在上面的行中复制数组. CStringArray本身未定义副本构造函数,而是从CObject派生而来cstring 数组 声明,后者具有私有副本构造函数.

将行更改为

c#声明数组_声明数组元素_cstring 数组 声明

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

本文解决: IT之家»返回CStringArray会出现错误

问题

我想返回一个CStringArray:

c#声明数组_cstring 数组 声明_声明数组元素

在我的.h中,我定义:

  b $ b CStringArray array; 

public:
CStringArray& GetArray();

我有cpp:

  CQueue :: CQueue()
{
m_hApp = 0;
m_default = NULL;
}


CQueue ::〜CQueue()
{

DeleteQueue();
}

CStringArray& CQueue :: GetArray()
{

return array;
}

我尝试从另一个文件中调用它:

  CStringArray LastUsedDes = cqueue.GetArray(); 

我认为这是由于上面的行,我得到了错误:

声明数组元素_cstring 数组 声明_c#声明数组

错误C2248: “ CObject :: CObject”: 无法访问在“ CObject”类解决方案中声明的私有成员

问题出在这条线上

  CStringArray LastUsedDes = cqueue.GetArray(); 

即使您想在GetArray()函数中返回CStringArray,该数组的副本也在上面的行中. CStringArray本身未定义副本构造函数cstring 数组 声明,它来自CObject,它具有私有副本构造函数. p>

将行更改为

  CStringArray& LastUsedDes = cqueue.GetArray(); 

但是请注意,您的类实例中包含的CStringArray中包含的LastUsedDes也是如此.

如果需要返回数组的本地副本,则可以使用Append成员函数复制内容.

  CStringArray LastUsedDes; // default construct the array 
LastUsedDes.Append(cqueue.GetArray()); //这将把
//返回数组的内容复制到本地数组

本文解决: IT之家»返回CStringArray会出现错误


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-149688-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 黄中辅
        黄中辅

        一来在世界舆论面前证明自己仍是世界老大

      • 赵宜真
        赵宜真

        • 邰强
          邰强

          炒股票的钱永远都是进了印股票人的腰包

      • 宋亚南
        宋亚南

        就像炒大蒜

      热点图片
      拼命载入中...