[C++] class .. operator=

Pagina: 1
Acties:

  • Akerboom
  • Registratie: Juni 2001
  • Laatst online: 29-07 13:20

Akerboom

Codito, ergo sum

Topicstarter
Ik heb een kleine klasse geschreven, deze heeft alleen private vector in zich waar enkele public operaties voor beschikbaar zijn die ik geschreven heb.

Nu wil ik de '=' operator gebruiken, dit krijg ik niet voor elkaar...

in m 'n class header file heb ik staan:

C++:
1
mailItem& operator = (const mailItem& param);

mailItem is dus de naam van mijn klasse...

De implementatie in mijn cpp code:
C++:
1
2
3
4
mailItem& operator = (const mailItem &param) {
    this.element = param.element;
    return *this;
}

element is hier de private vector.


Wat die ik fout??


berg compiler fouten:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
mailItemClass.h:18: candidates are: mailItem& mailItem::operator=(const
   mailItem&)
mailItemClass.cpp:27: `mailItem& operator=(const mailItem&)' must be a
   nonstatic member function
mailItemClass.cpp:27: `mailItem& operator=(const mailItem&)' must take exactly
   two arguments
mailItemClass.cpp: In function `mailItem& operator=(const mailItem&)':
mailItemClass.cpp:33: `element' undeclared (first use this function)
mailItemClass.cpp:33: (Each undeclared identifier is reported only once for
   each function it appears in.)
mailItemClass.h:7: `std::vector<std::string, std::allocator<std::string> >
   mailItem::element' is private
mailItemClass.cpp:33: within this context
mailItemClass.cpp:34: invalid use of `this' in non-member function

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Wat dacht je van:
C++:
1
2
3
4
mailItem& mailItem::operator = (const mailItem m) { 
    this.element = param.element; 
    return *this; 
}

Je moet voor iedere member functie de host-class opgeven hoor :Y)

edit:
kun je trouwens iets minder loze lege regels in je post gooien, leest irritant zo ;)

[ Voor 20% gewijzigd door curry684 op 20-10-2003 12:25 ]

Professionele website nodig?


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 18:33
this.element? Tis geen java :)

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • whoami
  • Registratie: December 2000
  • Laatst online: 17:38
farlane schreef op 20 oktober 2003 @ 12:29:
this.element? Tis geen java :)
:?
C++ kent ook this.

https://fgheysels.github.io/


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 18:33
Jama het is wel een pointer :)

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

farlane schreef op 20 October 2003 @ 12:38:
[...]
Jama het is wel een pointer :)
Is pas een stadium verder, zoals ie de code nu had geschreven was het nog een global function waarin heel het concept 'this' niet bestaat ;)

Professionele website nodig?


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 18:33
curry684 schreef op 20 October 2003 @ 12:39:
[...]

Is pas een stadium verder, zoals ie de code nu had geschreven was het nog een global function waarin heel het concept 'this' niet bestaat ;)
Kwas in de veronderstelling dat ie em in de class definition geimplementeerd had. >:)

[edit]
Owhnee, of hij moet de klassedefinitie in de cpp source hebben gezet. :)

[ Voor 14% gewijzigd door farlane op 20-10-2003 12:43 ]

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.

Pagina: 1