<01> C++ 与 C 的区别 & class类

描述确定一个事物,是行为(功能),而不是数据。例如:写字的,吸墨水的,笔尖是金属的。(毛笔)行为描述这个事物是钢笔。而不是黑色的等数据。

软件设计模式:
先搞清有哪些事物,联系人个人信息

C语言模块化设计与C++面向对象设计的区别:分离实体、找对象、拉关系。
分离实体:看项目中有哪些实体要参与?例如:CS游戏的人物、武器、实体
找对象:
拉关系:
聚合:C表述就是,结构体里面定义一个结构体指针,实体释放后,成员还在。
联合:C表述就是,结构体里面定义一个结构体,和外层结构体是同生共死的关系。

类 class · · ·
命名:
类 名: C 、 成员函数: m_
实例化:(有生命期)
实例有生命期,类型没有。
public:(公有)
private:(私有)

成员函数用来描述数据的行为。
成员函数的实现:① 类内实现 、② 类外实现(注意加作用域 “ ::”)

封装性(类外)
类外部不能直接操作 类的私有段数据,使用者只能通过接口来调用,不用关心类内是如何实现的。

sizeof(类)
内存布局:和结构体一样,在编译器眼中,认为就是成员函数和全局函数。
重载
重载机制:名称粉碎。与静态局部变量私有化一样。编译器眼里,重载的函数是几个函数名不同的函数。
名称粉碎解析工具:undname -f 粉碎后的名称

通配符:?* 个数必须准确。(类似于模糊查找)

运算符重载:
中缀表达式:a+b
波兰式写法:+(a,b)这样的写法直接产生对应的汇编代码。
eg:
cout << per.m_nID;
cout.operator<<(per.m_nID); 原理:调cout实体的成员函数operator<<( int ),参数是per.m_nID。

重载函数指针
operator<<(&ostream _ost);

构造函数(支持重载)
调用时机:实例化创建对象的时候自动调用。自动触发的。不需要人为触发

析构函数(不支持重载)
调用时机:离开作用域自动调用。被动触发调用。

显示调用构造目的是为了同一空间,反复使用。

posted @   kksllss  阅读(1)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示