加入收藏 | 设为首页 | 会员中心 | 我要投稿 拼字网 - 核心网 (https://www.hexinwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

适合具 备 C 语言基础的 C++ 攻略之一

发布时间:2022-12-05 12:40:58 所属栏目:语言 来源:
导读:  C 语言通常被认为是一种面向过程的语言,因为其本身的特性更容易编写面向过程的代码,当然也不排除使用 C 语言编写面向过程的代码,比如 Linux 的源代码以及现在很火的国产物联网操作系统 RT-Thread,其内核的

  C 语言通常被认为是一种面向过程的语言,因为其本身的特性更容易编写面向过程的代码,当然也不排除使用 C 语言编写面向过程的代码,比如 Linux 的源代码以及现在很火的国产物联网操作系统 RT-Thread,其内核的实现方式都是使用 C 语言实现的面向对象的代码。相比于 C 语言来说,C++ 更能够实现面向对象的程序设计,其具有的特性也要比 C 语言要多的多。下面假设有这样一个需求。
 
  现要描述两个人的信息,姓名,职业,年龄,并输出。
 
  我们首先先使用 C 语言的设计思路实现这个功能。
 
  C语言描述
 
  如果使用 C 语言来描述上面这个问题,大部分都会想到使用结构体来完成这个要求,写出的程序也就如下所示:
 
  #include <stdio.h>
 
  
 
  struct person
 
  {
 
      char *name;
 
      int age;
 
      char *work;
 
  };
 
  
 
  int main(int argc, char** aggv)
 
  {
 
      struct person persons[] = {
 
          {"wenzi",24,"programer"},
 
          {"jiao", 22,"teacher"},
 
      };
 
  
 
      char i;
 
      for (i = 0; i < 2; i++)
 
      {
 
          printf("name is:%s,age is:%d,work is:%s\n",persons[i].name,persons[i].age,persons[i].work);
 
      }
 
  }
 
  上述这是比较初级的写法,如果对 C 语言了解的更多一点的人在写这段程序的时候,会使用函数指针的方式将代码写的更加巧妙,代码如下所示:
 
  #include <stdio.h>
 
  
 
  struct person
 
  {
 
      char *name;
 
      int age;
 
      char *work;
 
  
 
      void (*printInfo)(struct person *per);
 
  };
 
  
 
  void printInfo(struct person *per)
 
  {
 
      printf("The people's name is:%s,age is:%d,work is:%s\n",per->name,per->age,per->work);
 
  }
 
  
 
  
 
  int main(int argc, char** argv)
 
  {
 
      struct person per[2];
 
  
 
      per[0] = {"wenzi",18,"programer",printInfo};
 
      per[1] = {"jiaojiao",18,"teacher",printInfo};
 
  
 
      per[0].printInfo(&per[0]);
 
      per[1].printInfo(&per[1]);
 
  }
 
  使用了函数指针的方式来书写这个程序,程序也变得更加简介了,主函数里也少了 for循环。
 

(编辑:拼字网 - 核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!