Ik ben momenteel een c++ programma aan het omschijven. Eerst stond het programma om een linux machine. Nu moet het naar microsoft visual c++. een probleem wat ik tegen kwam:
Op het moment dat ik "using namespace std" gebruikte kan de friend function geen private members van een classe aan roepen
Het gaat er om dat nu de private member niet bereikbaar is in de friend function. WAAROM?
Als je namespace weghaald dan werkt het wel. maar die heb ik nodig voor mijn STL functions.
Op het moment dat ik "using namespace std" gebruikte kan de friend function geen private members van een classe aan roepen
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
| #include <iostream>
#include <string>
using namespace std;
class Test{
private:
string a;
public:
test(){
a = "hallo";
}
friend ostream& operator<<(ostream & os, const Test & t) ;
};
ostream & operator << (ostream & os, const Test & t) {
return os<<t.a;
}
int main(){
Test t;
cout<<t;
cin.get();
return 0;
} |
Het gaat er om dat nu de private member niet bereikbaar is in de friend function. WAAROM?
Als je namespace weghaald dan werkt het wel. maar die heb ik nodig voor mijn STL functions.