0

Hey,
I have the following codes:

// In Form1.h
protected: 
 ItemGroup^ History;
 ItemGroup^ Favourites;
// In Form1(void)
History = (gcnew ItemGroup());
Favourites = (gcnew ItemGroup());
// ItemGroup
public:
ItemGroup(void);
int Length() { return _length; }
Item^ Items(int _index) { return _items[_index]; };
void Add(String^ _text)
{
	for (int i = _length; i < 0; i--)
	{
		_items[i] = (gcnew Item());
		_items[i] = _items[i - 1];
	}
	if (_length < _maxlength)
		_length++;
	_items[0] = (gcnew Item());
	_items[0]->Text(_text);
}
void Delete(int index)
{
	for (int i = index; i < _length; i++)
		_items[i] = _items[i + 1];
	_length--;
}
private:
static const int _maxlength = 8;
static int _length = 0;
static array<Item^>^ _items = gcnew array<Item^>(_maxlength);
};
// Item
public:
	Item(void);
	String ^ Text() { return _text; }
	void Text(String ^ value) { _text = value; }
private:
	String ^ _text;

Both History and Favourites are treated as the same object. They both have exactly the same items, length and everything. I do one thing to one, the other one updates too. What could be causing this?
Thanks and sorry for the masses of code (I tried to trim it).

4
Contributors
9
Replies
10
Views
6 Years
Discussion Span
Last Post by jonsca
0

Are these ItemGroup^ supposed to be ItemGroup* ? If so, then I bet you are storing and using a pointer somewhere where you think you are storing and using the actual value.

Dave

0

Are these ItemGroup^ supposed to be ItemGroup* ? If so, then I bet you are storing and using a pointer somewhere where you think you are storing and using the actual value.

Hey,
I he just switched from C#. I'm not really sure what all these * and ^ symbols mean. If I do not include them, it will not compile. Everything I used has been pasted here.
Any suggestions?
Cheers

Edited by bbman: n/a

0

Lines 10 and 11 in ItemGroup make no sense. Line 10 sets _items to a value, and line 11 immediately overwrites that value with a different value.

Once you figure out what the code is supposed to be doing, I suspect that the solution to the problem will be straightforward.

0

Lines 10 and 11 in ItemGroup make no sense. Line 10 sets _items to a value, and line 11 immediately overwrites that value with a different value.

Once you figure out what the code is supposed to be doing, I suspect that the solution to the problem will be straightforward.

But even with that, it should not make two items be the same, no?

0

Why are you declaring your array as static? There's only going to be one copy over all the objects of your class.

0

Why are you declaring your array as static? There's only going to be one copy over all the objects of your class.

Otherwise it will not compile- I have a value set.

0

I'm confused what you mean by "a value set." I would think you would want a new instance of the array for each object. Was it set up in C# like that?

0

I'm confused what you mean by "a value set." I would think you would want a new instance of the array for each object. Was it set up in C# like that?

The variable has been assigned a value. If I do not declare static, I cannot assign a value on creation.

Edited by bbman: n/a

0

Declare the variables in your class without giving them a value. Define them in the constructor for the class. Then they won't have to be static.

Edited by jonsca: n/a

This article has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.