嵌入式每日学习心得2017.08.10

1、冒泡:两两“相邻”之间元素进行比较,交换位置 (交换排序)
2、选择排序:每次从未排序中选择最值,依次存放 (交换排序)
3、插入排序:依次从未排序中取出一个值,插入到已序中。    
4、




模板:
函数模板:
template<typename T,typename T2> 或 tempalte<class T>
返回值 函数名(T形参1,T2 形参2,,,)
{
}
注:实参确定类型T


模板类:实现任何类型的数据类模板
template<typename T,typename T1> //注:此声明只能由于当前类
class 类
{
限定符:
T1 函数名(T形参,)
{

}
限定符:
...
T 成员;
};
类外定义接口:如果该方法用到T类时成员时,还应用在此方法声明T类
template<typename T,typename T1> //注:此声明只能由于当前类
class 类
{
限定符:
T1 函数名(T形参,);
限定符:
...
T 成员;
};
template<typename T,typename T1> //与定义的声明模板一致
T1 类<T,T1>::函数名(形参)
{
}


注:类型T由定义对象是,指定类型


定义对象:
对象<类型> 对象名;  


多态:一种方法有多种形态
  分类:静态多态,动态静态
静态多态:在编译时,就已经确定从多个形态中来确定调用某种接口。(重载)
    优点:在运行之前,正确的调用方法     却点:调用不够灵活


        动态多态:在编译时不能确定调用某个形态方法,只能在运行时才能确定。
 1、由于不能由子类对象指针-》基类,但基类指针指向子类。也就是可以借助父类指针指向不同子类对象(动态)
 2、由于基类指针只能指向子类的继承基础部分,但可以声明基类中的函数为虚函数,也就是可以指向不同的函数。(多态)
class 基类
{
...
virtaul 返回值  方法名();
...
};


父子之间赋值:
父子之间指针互相指向:
1、父-》子:只能由基类指针指向子类(子类中有基类的一部分),也就是只能引用继承过来的基类成员
2、子-》父:不能由子类指针指向父类(因为父类中没有子类的新增部分)








抽象类:
  应用: 头插法链表: InsertNode增加节点(插入头部)    删除节点DropNode    修改节点modifyNode   查找节点FindNode
尾插法链表: InsertNode增加节点(尾部)          删除节点DropNode    修改节点modifyNode   查找节点FindNode


 
struct Node
{
数据区
struct Node* next;//后驱指向
};


纯虚函数:只声明方法,但不实现方法
class  抽象类
{
public:
virtual 方法()=0; //纯虚函数:没有函数体
private:
成员变量;
};
//抽象类:只声明方法但不实现(定义)方法的类


注:抽象类的定义与非抽象类的定义一样,但有如下区别:
1、纯虚函数只能子类来实现 
2、抽象类(有纯虚函数的类)是不能实例化。
3、如果子类也不去实现此纯属函数,此子类也是抽象类。
4、也是虚函数。
在子类中来实现纯虚函数:
class 子类:public 抽象类
{
public:
...
声明方法();
...
};
实现方法:
返回值 子类::方法()
{

}



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值