Здравствуйте, Павел Кузнецов, Вы писали:
ПК>Интересно... А в чем, по-твоему, большее совершенство, скажем, C++ по сравнению c С с точки зрения инкапсуляции?
Она в нем есть.
ПК>Можно примерчик?
С++:
struct A
{
private:
int _val;
public:
int getVal() { return _val; }
void setVal(int val)
{
if (val < 0)
throw "требования инкапсуляции не допускают установку "
"отрицальтного значения свойству Val.";
_val = val;
}
};
void main()
{
A a;
a.setVal(123); // OK
a.setVal(-123); // Облом в рантайме.
a._val = -123; // Облом во время компиляции.
}
С:
struct A
{
int _val;
};
void mian()
{
A a;
a._val = -123; // Нарушение принципов инкапсуляции. Подразумевается что A::_val не может содержать отрицальное значение.
}
Не думаю, что этот пример был действительно нужен. Но чтобы ты в очередной раз не сказал, что я отказывюсь давать "подтвреждения своим утвреждениям" я его дал, затратив при этом немалое время на набивку соврешенно никчемного кода. В предь, уж извини я сразу буду посылать куда подальше, когда ты ты будешь мнея принуждать давать подтверждение совершенно очевидным вещам. Даговорились?
... << RSDN@Home 1.1.4 beta 3 rev. 207>>