Jak mohu změnit int 'a' uvnitř třídy, ale omezit funkce, které změní int POUZE třídy B? Já ani nechci být schopen to změnit.
Snažil jsem se vytvořit funkce příteli, ale dostanu chybu, jsem zahrnuty v komentářích kódu. Pak jsem zkoušel jen dopředu deklarovat funkci jako friend funkce v soukromých a pak vlastně vytváření funkcí ve veřejné, ale třídy C přístup k veřejné funkci. To i přes to, že mě psaní (v private sekci), že funkce je funkce příteli. Můžete mi "přítel", vlastní hodnoty? Já jsem si nejste jisti, co dělat tady.
#include <stdio.h>
#include <iostream>
int main() {
// forward declaration
class B;
class C;
class A {
private:
int a; // private member I want to edit, but only via class B.
int a2; // I would like to NOT be able to access this in class B. I only want to access and modify int a from class B, no other variable. If possible.
// invalid use of non-static data member 'a'
friend void test(int new_value) {
a = 5;
}
friend B;
public:
};
class B {
private:
int b;
public:
change_a_value(A a_class, int new_int) {
a_class.test(new_int); // I want this to be possible.
}
};
class C {
private:
int c;
public:
change_a_value(A a_class, int new_int) {
a_class.test(new_int); // I want this to be impossible
}
};
return 0;
}