C++第一篇--类的引入

1. 用C语言输出两个人的信息

Person1.c:通过字符实现

#include <stdio.h>

int main(int argc,int **argv)
{
char *zs_name = "zhangsan";
int zs_age = 10;
char *ls_name = "lisi";
int ls_age = 16;
printf("name=%s,age=%d\n",zs_name,zs_age);
printf("name=%s,age=%d\n",ls_name,ls_age);
}

Person2.c:通过数组实现


#include <stdio.h> int main(int argc, char **argv)
{
char *names[] = {"zhangsan", "lisi"};
char ages[] = {10, 16};
char *work[] = {"teacher", "doctor"};
int i; for (i = 0; i < 2; i++)
{
printf("name = %s, age = %d\n", names[i], ages[i]);
}
return 0;
}

Person3-1.c:通过结构体实现

#include <stdio.h>

struct person{
char *name;
char age;
char *work;
}; int main(int argc,int **arcv)
{
struct person Person[] = {
{"zhangsan",18,"Teacher"},
{"lisi",29,"Doctor"},
};
int i;
for(i = 0;i<2;i++)
{
printf("name is %s,age is %d,work is %s\n",Person[i].name,Person[i].age,Person[i].work);
}
return 0;
}

Person3-2.c:通过结构体实现,并在结构体实现打印函数

#include <stdio.h>

struct person{
char *name;
char age;
char *work; void (*printInfo)(struct person *per); //C中结构体只可以实现函数指针
}; void printInfo(struct person *per)
{
printf("name is %s,age is %d,work is %s\n",per->name,per->age,per->work);
} int main(int argc,int **arcv)
{
struct person Person[] = {
{"zhangsan",18,"Teacher",printInfo},
{"lisi",29,"Doctor",printInfo},
}; Person[0].printInfo(&Person[0]);
Person[1].printInfo(&Person[1]); return 0;
}

2. 引入C++类

  • 为了程序的简洁,现在用C++类实现,十分直观简单
  • C++对结构体进行的扩展,不仅可以直接实现函数,还可以直接访问结构体的属性,故引入C++类

Person4.cpp

#include <stdio.h>
class person{
public:
char *name;
char age;
char *work;
void printInfo(void)
{
printf("name is %s,age is %d,work is %s\n",name,age,work);
}
}; int main(int argc,int **arcv)
{
struct person Person[] = {
{"zhangsan",18,"Teacher"},
{"lisi",29,"Doctor"},
}; Person[0].printInfo();
Person[1].printInfo(); return 0;
}

3. 展望

  • 接下来会开始写关于面向对象编程
    • 封装
    • 继承
    • 多态
  • 以上所有代码直接在Ubuntu下编译执行即可,之后代码也是如此
//C语言编译执行命令
gcc Person.c -o Person
./Person
//C++语言编译执行命令
g++ Person.c -o Person
./Person

C++第一篇--类的引入的更多相关文章

  1. 前端学PHP之面向对象系列第一篇——类和对象

    × 目录 [1]类 [2]成员属性[3]成员方法[4]对象[5]成员访问[6]this 前面的话 面向对象程序设计(OOP)是一种计算机编程架构.计算机程序由单个能够起到子程序作用的单元或对象组成,为 ...

  2. 【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  3. [老老实实学WCF] 第一篇 Hello WCF

    老老实实学WCF  第一篇 Hello WCF WCF(Windows Communication Foundation)是微软公司推出的面向服务技术的集大成者,涵盖继承了其之前发布的所有的分布式应用 ...

  4. 老老实实学WCF[第一篇] Hell wcf

    老老实实学WCF  第一篇 Hello WCF WCF(Windows Communication Foundation)是微软公司推出的面向服务技术的集大成者,涵盖继承了其之前发布的所有的分布式应用 ...

  5. (转)[老老实实学WCF] 第一篇 Hello WCF

    http://blog.csdn.net/songyefei/article/details/7363296#comments 老老实实学WCF  第一篇 Hello WCF WCF(Windows ...

  6. 转载:eclipse 搭建SSH项目(第一篇)

    第一篇:原文地址:http://blog.csdn.net/aaaaaaaa0705/article/details/6288431(虽然没有具体的例子,不过逻辑性强点,比较容易看懂) SSH框架是最 ...

  7. Spring第一篇

    我计划用3到五篇文章来描述Spring,这是第一篇 1 . 什么是Spring Spring 是一个开源框架,Spring 是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnso ...

  8. 在net中json序列化与反序列化 面向对象六大原则 (第一篇) 一步一步带你了解linq to Object 10分钟浅谈泛型协变与逆变

    在net中json序列化与反序列化   准备好饮料,我们一起来玩玩JSON,什么是Json:一种数据表示形式,JSON:JavaScript Object Notation对象表示法 Json语法规则 ...

  9. 编程道拓扑bcd.top 0x01/ 开局第一篇: 随便聊聊/ 随笔

    0x01 开局 编程道拓扑(bcd.top)是一个前端从业者的思考和总结, 如果你喜欢, 欢迎关注! 作者是一个前端从业者, 本系列会总结作者在工作和学习中的一些思考, 会有具体的技术点, 也会有关于 ...

随机推荐

  1. [OpenGL]配置GLFW

    注:本文可转载,转载请著名出处:http://www.cnblogs.com/collectionne/p/6937644.html.本文还会修改,如果不在博客园(cnblogs)发现本文,建议访问上 ...

  2. poj2976(01分数规划)

    poj2976 题意 给出 a b 数组,一共 n 对数,其中最多可以去掉 k 对,问怎样使剩下比率(原始比率是 $ \frac{\sum_{i=1}^{n} a}{\sum_{i=1}^{n} b} ...

  3. 【小练习01】CSS--PS提示框制作

    要求用css和HTML实现下图效果: 代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8& ...

  4. Java线程间通信

    1.由来 当需要实现有顺序的执行多个线程的时候,就需要进行线程通信来保证 2.实现线程通信的方法 wait()方法: wait()方法:挂起当前线程,并释放共享资源的锁 notify()方法: not ...

  5. JQuery--Ajax 异步操作 动态添加节点 (新人试水,求支持)

    异步操作动态添加节点,导致在代码中给添加的节点全局绑定事件或者获取元素无效,上代码: $(function () { var IP = '...'; // 页面中的默认编号起始值 和 公用IP前缀 s ...

  6. */美女镇楼/*>>>---PHP中的OOP-->面对过程与面对对象基础概念与内容--(封装、继承、多态)

      前  言  OOP  学习了好久的PHP,今天来总结一下PHP中的重要成员OOP 1  面向过程&面向对象 1.专注于解决一个问题的过程.面向过程的最大特点,是由一个一个的函数去解决处理这 ...

  7. Ajax&jQuery教案总结

    Ajax&jQuery教程总结 目录 第一章 Ajax入门 6 第1讲 传统表单提交存在的问题 6 课程内容 6 1. 问题的引入 6 2. 问题的解决 6 参考进度(0.5课时) 7 第2讲 ...

  8. android6.0搜索蓝牙无法显示问题解决

    1.android6.0版本搜索蓝牙需要开启位置信息 需在Manifest中添加权限: <uses-permission android:name="android.permissio ...

  9. Sql Server 事物

    事物的定义: 数据库的事物是原子性的,原子性的概念是指把一些事情当做一个单元来看待. 从数据库的角度看,它是指全部执行或者全部不执行的一条或者多条语句的最小组合:为了理解事务的概念,需要能够定义非常明 ...

  10. android下的名词/片段解释

    关于建项目时候SDK解释 minimum required SDK: 又为miniSdk, 是你程序最低支持的SDK版本,这个现在一般miniSDK设定一般为8或者10 Target SDK:是你程序 ...