版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/bayinglong/article/details/79619864
类
class<>
{
private:私有
protected:保护,子类可用
public:共有
}
::域操作符号
先声明公有后声明私有,用户关心公有。
不声明,默认private。
构造函数
使得类初始化值(可使用初始化列表,c++有,c#没有),不指定返回值
可重载
析构函数
“~”函数名称前加,一个类有且只有一个,建议使用virtual,可实现子类重写,便于释放对象。
被调用
- 类中所有函数执行完成,自动调用
- new生产一个类,delete释放
this指针
可访问自身类中变量等
继承
实现代码重用
class<派生类名>:[继承方式]<基类名>
{
<派生定义成员>
}
继承方式3种:public、protected、private:向下兼容
多继承
实现接口,继承抽象类等,c++中其实并没有严格意义的接口何抽象类语法,c#中有interface和abstract,主要依靠虚函数实现。
多态与虚函数
在派生类中有不同的函数实现;
重新定义函数签名要相同;
// Win32Project3.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include"iostream"
using namespace std;
class CalcArea
{
public:
double lenght;
double wide;
CalcArea(int a,int b )
{
lenght=a;
wide=b;
}
virtual int Calc()
{
return lenght*wide;
}
};
class triangle:CalcArea
{
public:
triangle(int a,int b ):CalcArea( a, b )
{
}
int Calc()
{
return 0.5*lenght*wide;
}
};
int _tmain(int argc, _TCHAR* argv[])
{
triangle* sd=new triangle(1.0,4.0);
cout<<sd->Calc()<<endl;
}
模板
类似于C#中的泛型,比泛型更牛逼
方法
template
T 函数名(T 参数名)
{
函数体
}
类
template <数据名称声明 T>
class 类名()
{
};
类外定义方法:指明参数类型
就这么多基础,三言两语解决