C++之面向对象

class<>
{
private:私有
protected:保护,子类可用
public:共有
}
::域操作符号
先声明公有后声明私有,用户关心公有。
不声明,默认private。

构造函数

使得类初始化值(可使用初始化列表,c++有,c#没有),不指定返回值
可重载

析构函数

“~”函数名称前加,一个类有且只有一个,建议使用virtual,可实现子类重写,便于释放对象。
被调用

  1. 类中所有函数执行完成,自动调用
  2. 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 类名()
{
};
类外定义方法:指明参数类型

就这么多基础,三言两语解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值