如果在子类中实现了对父类函数的覆盖
创建子类对象指针 将会执行子类函数
创建父类对象指针 将会执行父类函数
--------------------
虚函数
virtual 关键字修饰的函数叫虚函数
当父类指针指向 子类对象时,如果调用的函数时虚函数
将会执行子类的函数
virtual 函数返回值 函数名(参数)=0;
纯虚函数
只有函数定义 没有函数实现
包含纯虚函数的类叫抽象类
抽象类不能创建实例
------------------------------------
模版函数
Template <class T>
T getmax(T a, T b)
{
return a>b?a:b;
}
编译器会自动生成
int getmax(int a,int b)
{
return a>b?a:b;
}
float getmax(float a,float b)
{
return a>b?a:b;
}
char getmax(char a,char b)
{
return a>b?a:b;
}
NPC getmax(NPC a,NPC b)
{
return a>b?a:b;
}
------------------------------------
模版类
template <class T>
class linklist {
struct Node{
T data;
struct Node * pNext;
};
struct Node * head;//头节点
public:
void addNode(T * newNode);
void deleteNode(T * newNode);
void getHead();
void modifyNode(T * newNode);
};
----------------------------------
stl 标准模版库
vector list map .....
------------------------------------
操作符重载
在一个类中 定义如下函数
返回值 operator操作符(参数)
当当前对象使用操作符时,就会调用这个函数
创建子类对象指针 将会执行子类函数
创建父类对象指针 将会执行父类函数
--------------------
虚函数
virtual 关键字修饰的函数叫虚函数
当父类指针指向 子类对象时,如果调用的函数时虚函数
将会执行子类的函数
virtual 函数返回值 函数名(参数)=0;
纯虚函数
只有函数定义 没有函数实现
包含纯虚函数的类叫抽象类
抽象类不能创建实例
------------------------------------
模版函数
Template <class T>
T getmax(T a, T b)
{
return a>b?a:b;
}
编译器会自动生成
int getmax(int a,int b)
{
return a>b?a:b;
}
float getmax(float a,float b)
{
return a>b?a:b;
}
char getmax(char a,char b)
{
return a>b?a:b;
}
NPC getmax(NPC a,NPC b)
{
return a>b?a:b;
}
------------------------------------
模版类
template <class T>
class linklist {
struct Node{
T data;
struct Node * pNext;
};
struct Node * head;//头节点
public:
void addNode(T * newNode);
void deleteNode(T * newNode);
void getHead();
void modifyNode(T * newNode);
};
----------------------------------
stl 标准模版库
vector list map .....
------------------------------------
操作符重载
在一个类中 定义如下函数
返回值 operator操作符(参数)
当当前对象使用操作符时,就会调用这个函数