正在阅读:《编程高手箴言》读后(4)《编程高手箴言》读后(4)

2004-04-08 14:39 出处:CSDN 作者:seacloud 责任编辑:sdq

  到了Pascal和C语言中,数据和代码之间的关系就模糊了。
=========================================
  呵呵,Pascal是我的第一门语言,C也用了这么多年了,怎么就没觉得它们数据和代码之间关系模糊啊?不理解。

  有了重入功能,操作系统就很好设计了,就能实现多任务。
=========================================
  这种说法真的还是第一次听说。只要慎用全局变量,那么一个函数的可重入性还是比较容易做到的啊。操作系统的某些部分确实需要重入功能,但是单独拔高重入的重要性以前确实是没见过:-)另外,多任务实现的基础恐怕不是什么重入功能吧?

  C++是这样一种工作方式,即把数据和对其操作的代码进行捆绑。这样就可以和结构一样,进行内存的分配和使用。在C++中,函数内部用动态的可重入的变量,而C++又是工作在自己独立的数据区和代码区。
=========================================
  C++的数据和相应的操作(方法)其实不在一个地方,至少VC生成的代码是这样,在下面我写了几个小程序,大家可以跑跑,自然就会得出自己的结论了。
  另外,C++函数中内部用动态的可重入变量很正常啊,C也是这样啊。至于说C++又是工作在自己独立的数据区和代码区就让人困惑了,搞不清楚作者想要告诉我们些什么。
  其实,一个C++ class如果只有public成员变量而没有方法的话,那么它和一个struct其实没什么不同,即使有了普通的方法,C++ class的内存表示还是没有变化,只不过编译器会另找一个地方存放方法代码本身。下面两个class:

  class A
  {
  public:
      int value;
  };

  class B
  {
  public:
      int value;
      void sayHello() { cout << "B::sayHello()" << endl; }
  };

察看评论详细内容 我要发表评论
作者笔名简短内容 发表时间
:

键盘也能翻页,试试“← →”键

相关文章

关注我们

最新资讯离线随时看 聊天吐槽赢奖品