Bonjour,

Après plusieurs recherches infructueuses je me suis décide à poser ma question ici.

C'est une question toute simple pour la plus part d'entre-vous a mon avis ;-)

Pourquoi le compilateur permet-il d’accéder a une variable membre privée alors que d’après moi il ne devrait pas ?
(indiqué par "<--ici" dans le "test.cpp")

Merci

Mon Main:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 "test.h"
 
using namespace std;
 
 
int main()
{
    test t1,t2;
 
    t2.setVar1(3);
 
    cout << "Affiche t1";
    t1.affiche();
 
    cout << "Affiche t2";
    t2.affiche();
    t2.methTest(t1);
 
    cout << "Affiche t1";
    t1.affiche();
 
    return 0;
}
Ma classe(h) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#ifndef TEST
#define TEST
 
#include <iostream>
 
using namespace std;
 
class test
{
    private:
        int _Var1;
 
    public:
        test();
 
        int getVar1();
        void setVar1(int v);
 
        void methTest(test &t);
        void affiche();
};
 
#endif
Ma classe(cpp) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "test.h"
 
test::test()
{
    _Var1 = 10;
}
int test::getVar1()
{
    return _Var1;
}
void test::setVar1(int v)
{
    _Var1 = v;
}
void test::methTest(test &t)
{
    t._Var1 = 3; //<-----------------------------------------ici
    t.setVar1(3);
}
void test::affiche()
{
    cout << endl << "_Var1 = " << _Var1 << endl;
}