zoukankan      html  css  js  c++  java
  • C与对象?


            学习程序时,我们从什么时候开始有对象的概念?大概是学习C++开始吧,并且听到一个词:面向对象(OOP)。怕是很多人都背得出“对象”的定义——我记得大概是“对有共同属性事物的抽象”——于是很多人便以为自己“懂”面向对象了,还有些人甚至知道,在编程中,对象是用类(class)封装的,便常常将“面向对象编程”挂嘴边,俨然一个高级语言程序员。

            说了这么多,看官您大概听出我在暗示什么了,是的,正如你担心的,如果你理解的“对象”、“类”就是我刚才说的那样,可以说你完全被教材作者所谓“丰满”的描述语言给误导了——甚至有些人被这晦涩难懂的定义吓倒而放弃了做一名程序员。

            再给个暗示:机器级代码(或是机器/系统),也就是一些1/0的组合,是完全不知道“类”为何物的,所谓C++类(我假设您知道C++)对数据成员的三级保护(私有/共有/保护)只是在编译时实现的,换句话说,如果有个变态的编译器作者完全忽略这三个关键字,那么所谓“封装”就不起任何保护作用。

            回到“对象”的讨论上来,那么现在什么是“对象”呢?对象是程序与数据的组合,仅此而已。C++号称“面向对象”,也就是在语法上对此提供了支持,如果你对自己程序中的数据和操作之间的关系足够了解的话,用C也是同样能实现“对象”的,不过话又说回来,如果你连这种关系都不清楚,即使用C++以及更高级的“面向对象”语言,你又如何能“抽象”并定义出一个合理的“类”呢?

  • 相关阅读:
    用成员函数指针作为Callback
    在ubuntu上编译gcc会到的问题及解决方法
    异步
    棋牌游戏服务器架构: 详细设计(二) 应用层设计
    elementUI eltable添加序号列
    vue 父子组件的相互调用
    所谓编程的哲学艺术
    亲爱的百度,您带着bug翩翩走来……呃
    std::vector<point>对距离固定点的距离排序
    升级ubuntu11出现grub错误
  • 原文地址:https://www.cnblogs.com/wqlblogger/p/442287.html
Copyright © 2011-2022 走看看