程序编程和数据暴露

时间:2012-07-18 23:23:45

标签: procedural-programming

考虑到在程序编程中你可以拥有局部范围,是否公平地说下面的陈述并不完全正确?

“在程序程序中,数据暴露给整个程序,而在OOP程序中,它可以在对象中访问,从而确保代码的安全性。”

(我是一名学生,我在实习面试时被问到这个问题)

1 个答案:

答案 0 :(得分:0)

我同意Mark,不完全正确的部分是“确保代码的安全性”。

面向对象的语言在程序语言中可以做同样的事情:隐藏类型定义,然后将指针传递给包含数据和使用全局的结构。一个例子是C的pthreads库,它使用opaque类型来阻止API的用户修改内部数据结构。 (不透明只是意味着结构是在私有头中定义的,因此用户在没有指针技巧的情况下无法在其中看到。)

但数据安全性?不,因为您仍然可以使用指针在不透明结构内部达到峰值,甚至可以检查堆栈上的数据。这也适用于C ++。黑客仍然可以尝试检查程序的内存(调试器,核心转储,其他技巧)。