Wat doe ik fout in onderstaande code. Zo werkt ze niet. Als de delete xy weghaal werkt het wel, maar ik heb een memory leak. Ik weet dat het basis c++ is maar ik heb mijn boeken thuis liggen.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
| class xyvector
{
public:
int y;
int x;
xyvector();
~xyvector();
};
class xyzvector
{
public:
xyzvector Equals(const xyzvector src);
xyzvector();
~xyzvector();
int z;
xyvector* xy;
};
xyzvector::xyzvector()
{
xy = new xyvector();
}
xyzvector::~xyzvector()
{
delete xy;
}
xyzvector xyzvector::Equals(const xyzvector src)
{
this->z = src.z;
this->xy->x = src.xy->x;
this->xy->y = src.xy->y;
return *this;
}
void CTest_new_deleteDlg::OnButton1()
{
xyzvector a,b;
CString tmp;
a.xy->x = 1234;
b.Equals(a);
tmp.Format("%d", b.xy->x);
AfxMessageBox(tmp);
} |