1,拷贝构造函数的意思是在于生成一个与原函数一样的原形就象克龙一样与出生是一样,而不是经过修改,其实他也算是构造函数的一种重载形式。
2.模板<摸板参数表>对象
3.参数匹配->函数摸板->函数重载
4.摸板的用途可用于对基层的一种选择
5.计算方法((数值)->计算方法;(非数值)->存储数据结构)
6.函数摸板可以创建一个通用的功能的函数来支持多种不同的形参,进一步的重载函数的设计
7.Template<typename 标志符>
T abs(T x) T类型
8.模板是比较智能的一种方法。
9.模板->类 ->对象
10.模板是一种更高级的抽象含糊的说明类型T数据T则函数一定是T模板就象一个制造类的模子用模子来制造类。
11.Namespace对于名字空间的认识以前有误解,其实名字空间实际上是允许同一函数内有同名的函数名即形参。因为他是用一个个空间来把形参名字封装起来的.
12.定义跌代器就象定义自己的指针去适用与不同指针解决不了的问题不管数据类型还是数组下标。
13.多态是一种抽象它负责在数据生产者和消费者之间建立联系。
14.多态:同样的函数被不同对象接受时导致不同的行为;
其中重载多态,强制多态称为专用多态;包含多态,参数多态称为通用多态。
15.函数类型 operator 运算符 {函数体}
16.对待cout是标准输出流操作是象是信息在标准输出设备。比如说显示器但是并不是固定的。由程序中自己定义的。
17.对异常的解释是由于程序对用户的一些出错能力的容许能力,这中错误可能是磁盘空间不够或者是没有插如磁盘,也可能是用户输入错误所以异常是一种程序的自救吧,维护;只要抛出异常,后面的工作就不要管了,因为一出异常他的调用者捕获到它的异常以后就会做相应的异常处理容错功能就分工了。
可以在函数的声明中列出这个函数可能抛掷的所有异常类型。例如:
void fun() throw(A,B,C,D);
void fun() throw(A,B,C,D);
l 若无异常接口声明,则此函数可以抛掷任何类型的异常。
l 不抛掷任何类型异常的函数声明如下:
void fun() throw();
18.运算符重载一种静态多态性,原来虚函数是动态多态性质的,而运算符重载是属于静态多态性的一种。多态的实现方式就是有三种函数重载(有静有动吧我想)运算符重载和虚函数。目的是使重载的运算符能够满足自己的自定义类型。不能改变其自定义数据类型也就是说不能使他的基本只能发生变化,例如+不能重载为其他的功能只是换一种类型相加如对象与对象的相加。
重载为类成员函数时
参数个数=原操作数个数-1(后置++、--除外)重载为友元函数时 参数个数=原操作数个数,且至少应该有一个自定义类型的形参。
参数个数=原操作数个数-1(后置++、--除外)重载为友元函数时 参数个数=原操作数个数,且至少应该有一个自定义类型的形参。
重载为成员函数是运算符左边为类或对象
*this => 是为了能用在调用;而重载为友员函数则左边为常数或常量。
19.静态成员(数据和成员函数)数据可以看成是一个类中对象的公性相同的部分但是每个数据都不一样例如学号每个学生都有学号但是每个学号都不一样。而成员函数指的是每个对象都有这个功能函数代码的拷贝只有一份而非静态成员每个对象都有一份。属于整个类。只能在所有的函数之外初始化,属于这个类。在类外访问静态成员函数时可以用对象名作为参数为对象名。静态数据成员这种形式。也可以在类外时需加类名
::调用也是可以的。例如:
A.Get(c)与
Point::Get(c);的效果是一样的。实际上静态成员函数没有this指针而一般的成员函数是都有一个this指针的。这就导致了一个最基本的问题就是静态成员函数它是不能和外面的函数发生调用与被调用的个关系的。这就是静态成员的好处。
20. 先解释一下常量指针和指向常量的指针
指向常量的指针:
const int *p;
int const *p;
指针本身是常量:
int * const p;
指向常量的常量指针:
const int * const p;
如何区分?以*为界,如果const在其左边,表示指向的对象是常量。如果const在右边,表示该指针本身是常量,不能修改 const int *const (!!) &pi_ref=&ival;
请注意 !! 标注的 const,
它的作用是,
说明 pi_ref 这个引用是 常量的引用 !!
常量的引用,
表明其引用的对象是常量,
那么无法通过这个 引用 pi_ref 去修改 被引用的 &ival 的值
(因为是常量, 无法修改)
一个非常量可以被一个 常量引用 所引用,
这个是可以的, 因为操作权限是缩小的, 不会带来严重的问题;
但是反过来就不行, 可能会是非法操作 ~~
指向常量的指针:
const int *p;
int const *p;
指针本身是常量:
int * const p;
指向常量的常量指针:
const int * const p;
如何区分?以*为界,如果const在其左边,表示指向的对象是常量。如果const在右边,表示该指针本身是常量,不能修改 const int *const (!!) &pi_ref=&ival;
请注意 !! 标注的 const,
它的作用是,
说明 pi_ref 这个引用是 常量的引用 !!
常量的引用,
表明其引用的对象是常量,
那么无法通过这个 引用 pi_ref 去修改 被引用的 &ival 的值
(因为是常量, 无法修改)
一个非常量可以被一个 常量引用 所引用,
这个是可以的, 因为操作权限是缩小的, 不会带来严重的问题;
但是反过来就不行, 可能会是非法操作 ~~
21.LPCTSTR C表示常量的意思
STR表示string的缩写。常量字符串usedefault是系统缺损值意思是不要用户自己去定义。可以设置为0。Lppram是多文档的参数