Wpis z mikrobloga

#programowanie #cpp

Istnieje jakiś wzorzec projektowy czy inne rozwiązanie pozwalające zrealizować coś takiego że istnieją obiekty A, B i X i żeby obiekt A mógł obiekt X czytać i edytować a obiekt B tylko czytać? Zależy mi na czymś bardziej zaawansowanym niż settery i gettery i w A używać setterów a w B getterów. :D Tak może trochę z ciekawości pytam.
  • 10
@bartoneczek: Bardzo mocno przekombinowane, ale działa. :)



class
```**```
 XBase {

``````

protected:

``````

    
```**```
int
```**```
 x_;

``````

};

```**```
class
```**```
 ReadableX : 
```**```
public
```**```
 XBase {

``````

public:

``````

    
```**```
int
```**```
 getX() 
```**```
const
```**```
 { 
```**```
return
```**```
 x_; }

``````

};

```**```
class
```**```
 WritableX: 
```**```
public
```**```
 ReadableX {

``````

public:

``````

    
```**```
void
```**```
 setX(
```**```
int
```**```
 x) { x_ = x; }

``````

};

```**```
class
```**```
@bartoneczek: Teraz tak pomyślałem… Przecież mając obiekt

X
, wszelkie operacje „czytania” nie zmieniają jego stanu, więc powinny być

const
. Zatem można to uprościć do:



class
```**```
 X {

``````

private:

``````

    x_;

``````

``````

public:

``````

    
```**```
int
```**```
 getX() 
```**```
const
```**```
 { 
```**```
return
```**```
 x_; }

``````

    
```**```
void
```**```
 setX(
```**```
int
```**```
 x) { x_ = x; }

``````

};

```**```
class
```**```
 A {

``````

private:

``````

    X& obj;

``````