面向对象的嵌入式学习总结(2)

面向结构程序设计 VS 面向对象程序设计

衡量语言的标准:

  • 扩展性:添加新的功能,不修改之前的代码;
  • 维护性:当出现问题,能够准确定位代码;
  • 复用性:功能代码复用;

优缺点:

  1. 面向对象的优点:复用性好、扩展性好、维护性好。
    面向结构的缺点:复用性差、扩展性差、维护性差。
    应用场景:

  2. 面向对象:解决复杂宏观的系统任务
    面向结构:具体任务

例题: 小明用钥匙开门,然后开灯。

人---小明
钥匙---大门钥匙
门---大门
灯---客厅的灯

面向过程的方法是:分解成2个过程,开门、开灯。
面向对象的方法是:封装成4个对象,人、钥匙、门、灯。

  1. 面向对象的三大特点:

    封装
    继承
    多态

命名空间

命名空间:(本质的实现:给每个变量和函数添加static)
命名冲突:全局变量、函数。
命名冲突产生的场景:多人协同开发!!!

C语言是如何解决多个文件导致的命名冲突?
答:static关键字

static关键字的作用:

1.修饰局部变量:延长局部变量的生命周期(程序执行结束后再释放);

#include <iostream>
#include <stdio.h>
using namespace std;//命名空间
void func()
{
    static int num = 5;//static:执行一次
    num++;
    printf("num = %d\n",num);
    }
    int main()
    {
          func();
          func();
          func();
          return 0;
          }
          

输出:6、7、8。
std::标准库命名空间;防止与C语言的命名产生冲突;

2.修饰全局变量:被修饰全局变量,只能在本文件使用,不能在其他文件中使用;

3.修饰函数:被修饰的函数,只能在本文件访问,不能在其他文件访问;

C++是如何解决命名冲突?

命名空间的使用: 方法1:名字::成员。 方法2: using namespace 名字。
例:

#include <stdio.h>
namespace B
{
   int count = 6;
   }
   static void ptint()
   {
     printf("print:count = %d\n",B::count);
     printf(:print function!\n");
     }

区别:单一VS全部
注意使用:源文件不能访问其他源文件的命名空间;如果命名1空间重名,相同成员名报错,不同成员名合并;
其他:嵌套定义

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值