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

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

C 语言通常被认为是一种面向过程的语言,因为其本身的特性更容易编写面向过程的代码,当然也不排除使用 C 语言编写面向过程的代码,比如 Linux 的源代码以及现在很火的国产物联网操作系统 RT-Thread,其内核的实现方式都是使用 C 语言实现的面向对象的代码

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循环。

本文来自网络,不代表站长网立场,转载请注明出处:https://www.tzzz.com.cn/html/biancheng/yuyan/2021/0602/8840.html

作者: dawei

【声明】:站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。
联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部