tags:

views:

2181

answers:

3

Possible Duplicate:
error using CArray

Duplicate : http://stackoverflow.com/questions/864864/error-using-carray


so, i am trying to use CArray like this :

   CArray<CPerson,CPerson&> allPersons;
   int i=0;
   for(int i=0;i<10;i++)
   {
      allPersons.SetAtGrow(i,CPerson(i));
      i++;
   }

but when compiling my program, i get this error :

"error C2248: 'CObject::CObject' : cannot access private member declared in class 'CObject' c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxtempl.h"

I don't even understand where this is coming from.

HELP !

A: 

It means that your program is trying to construct an instance of CObject, which appears to be banned because CObject has a private constructor.

Maybe the CArray is trying to construct those instances? What does the rest of the program look like?

Daniel Earwicker
yes, i think it has to do with the fact that CArray is trying to construct an instance of CObject.but how do I circumvent the problem ?
Attilah
Like I asked, what does the rest of the program look like? Post the shortest complete program that will demonstrate the problem, omitting the stuff generated by any wizards, etc.
Daniel Earwicker
A: 

Write a constructor for your class (CPerson) and make it public. it should solve the problem.

You bumped a very old duplicate...
GMan
A: 

The problem is that you're constructing a CObject on the stack. Somewhere in your program you're attempting to pass a reference to a CArray object but you accidentally left out the "&" in the function prototype. For example:

void DoFoo(CArray cArr)
{
    // Do something to cArr...
}

^^^ The code above will cause the error you're having.

void DoFoo(CArray & cArr)
{
    // Do something to cArr...
}

^^^ The code above will not cause the problem.

Gixxernaut