Ik krijg bij het compileren de volgende error:
De boosdoener bevind zich volgens de compiler op deze regel:
Het vreemde is, en dat is ook gelijk het probleem, dat de functie om die regel te regelen wél bestaat:
En ook input() is goed bezig, die returnt namelijk gewoon een object van type sample ...
Ik heb ook al geprobeerd de functie te verwijderen, maar zelfs een bitwise copy wil hij niet
Ik gebruik Dev-C++ op Windows XP Prof SP2.
Wat doe ik verkeerd of zie ik over het hoofd?
code:
1
2
3
| In function `int main()': no match for 'operator=' in 'ob = input()()' candidates are: sample sample::operator=(sample&) |
De boosdoener bevind zich volgens de compiler op deze regel:
C++:
1
2
3
4
5
6
7
8
9
10
| int main( ) { sample ob; ob = input( ); // DEZE REGEL ob.show( ); system( "pause" ); return 0; } |
Het vreemde is, en dat is ook gelijk het probleem, dat de functie om die regel te regelen wél bestaat:
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
| sample sample::operator=( sample &ob ) { if( strlen( ob.s ) > strlen( s ) ) { delete [] s; s = new char[ strlen( ob.s ) + 1 ]; if( ! s ) { cout << "Allocation error!\n"; exit( 1 ); } } strcpy( s, ob.s ); return *this; } |
En ook input() is goed bezig, die returnt namelijk gewoon een object van type sample ...
C++:
1
2
3
4
5
6
7
8
9
10
11
| sample input( ) { char instr[80]; sample str; cout << "Enter a string: "; cin >> instr; str.set( instr ); return str; } |
Ik heb ook al geprobeerd de functie te verwijderen, maar zelfs een bitwise copy wil hij niet
Ik gebruik Dev-C++ op Windows XP Prof SP2.
Wat doe ik verkeerd of zie ik over het hoofd?