面向对象的c++和windows编程

一、抽象性、封装性

二、继承性

三、多态性

四、C语言基础

五、泛型程序设计

5.1模板

1.一个模板是创建一个类或函数的通用模型,将队形的数据类型参数化。

2.将程序设计重点放在算法是算法,使得“算法”和“数据类型”分开,实现一段程序 可以处理多种不同类型的对象。

5.1.2函数模板

template <typename Ttype1,typename Ttype2>
返回类型 函数名(参数列表)

{ 函数定义体;}

1.< >内参数为模板形参

例1:

函数模板

template <typename T>
T abs(T& a)
{
	return a < 0 ? -a : a;
}

参数的替代:

编译器根据实际的参数确定模板参数T 的类型

void main(0)
{ 
	int i = 3;
	float f = 2.5;
	i = abs(i); cout << "i=" << i << endl;
	f = abs(f); cout << "f=" << f << endl;
}

2.模板是将数据类型参数化的工具,提供了一种代码与数据类型脱离的机制。

3.函数模板执行过程中,两次编译:

   第一次实例化之前,编译器检查模板代码本身的语法是否正确;

   第二次实例化时,检查模板代码,查看调用都有效,如果发现实例化类型不支持某写函数调用,     则会报错。  

5.1.2类模板

1.类模板指申明一个类时,将某些数据类型参数化,包括函数成员类型、成员函数参数类型或返回值类型

2.一个可以处理多种数据类型的通用类。

3.创建对象实例时,将通用类实例化,成为通用类的一个副本,具有指定的类型。

template <typename Ttype1,typename Ttype2>
class ClassName

{ 类定义体;}

4.<>内为模板形参表

5.定义类模板,模板形参的类型必须在类名后面< >中指出

       可以用如下语句创建类的实例:

ClassName <typename> 对象1,对象2,......,对象n

6.在类模板外部定义类的成员函数:

template <typename Ttype>

返回类型 ClassName <Ttype>::函数名(参数列表)

{      函数体;  }

例2:

#include<iostream>
using namespace std;
struct stuScore
{
	int id, score;
};
template <typename T >//定义模板类
class CBuffer
{
private: 
	T a;
	int empty;
public:
	CBuffer();
	T get();
	void push(T x);
};
template <typename T>
CBuffer <T>::CBuffer() :empty(0) {}//对T参数化处理过程
template <typename T>
T CBuffer <T>::get()
{
	if (empty = 0) { cout << "the buffer is empty!" << endl; }
	return a;
}
template <typename T>
void CBuffer<T>::push(T x)
{
	empty++; a = x;
}
void main()
{
	stuScore stu = { 55,2001 };
	CBuffer<int> i1, i2;//int创建类实例
	CBuffer<stuScore> stu1;//结构体stuScore创建类实例
	CBuffer <double> d;//double创建类实例
	i1.push(100); i2.push(-100);
	d.push(78);
	cout << i1.get() << " " << i2.get() << endl;
	stu1.push(stu);
	cout << "the student's id is" << stu1.get().id << endl;
	cout << "the student's score is " << stu1.get().score << endl;
	cout << d.get() << endl;
}

六、Windows编程基础

6.1Windows程序的特点

1.用户界面统一、友好;

2.支持多任务,多窗口;

3.独立于设备的图形操作

-图形设备借口(GDI ,Graphics Device Interface),提供与设备无关的图形输出能力;

4.队列化信息输入;

5.事件驱动的程序设计,允许用户用各种合理的顺序来安排程序的流场;

-当按下键、移动鼠标或单击鼠标按钮时,计算机通知Windows系统发生一个事件,和事件的种类、发生时间、发生位置(如坐标值)

6.资源共享,应用程序共享系统提供的资源;

7.程序和资源分开:菜单、对话框、位图等可视化对象呗单独分离出来

8.支持应用程序间的数据交换;

6.2基本概念

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值