C++面向对象和流

变量——捆绑封装——类

函数——


类概念及基本语法


引用名就是给函数重新定义一个名字,方便调用

定义函数都是写了Rectangle::表示后面函数是Rectangle类的一个成员函数,而不是一个普通函数


默认函数——构造、析构、复制构造、赋值与取址


class cellphone{
每个物体都有诞生和消亡——构造函数与构析函数
public:
    cellphone();  构造函数,类的同名函数,当定义一个对象时会自动调用构造函数,
                也就是初始化函数,构造函数可以有参数,默认的构造函数是没有参数的
    ~cellphone(); 对象死亡时,要告诉别的我死了,用析构函数
可以被复制
    cellphone(const cellphone&);复制构造函数,默认是把一个对象完完全全都复制到另一个对象中去
    cellphone & operator=(const cellphone&);等号(相同操作)
可以取地址
        cellphone * operator&();主要是支持了取址符操作(&)
        const cellphone*operator&() const;
private:
    int electricty;
}


特殊成员——this指针

是指向类自己的指针,但并不是类的真实成员,是常量指针,不能修改

可以通过this指针来访问自己的地址,例如在类的函数中使用this指针,就指向了自己

但并不是类的真实成员,非static成员函数调用时,this指针为隐式参数


功能:防止自赋值、返回以连续调用

class Complex{
    float real,imag;        #实部、虚部(默认是不可以访问的)
    public:
        Complex*ReturnAddress(){        #返回地址方法,用复数类的指针类型
            return this;
        }       #c.ReturnAddress()等效于&c
        float ReturnReal(){     #返回实部
            return this->real;  #等效于return real
        }
};


函数模板与类模板

函数模板:让我们一次性定义一系列函数的办法

eg:定义对不同类型数据的排序函数,需要对整型、浮点型等都要定义,用函数模板可以一次性定义出来


template<class T>#template开头表示这是一个模板,<>中是模板参数

return-type sort(...T...)#和普通函数一样,返回值、参数名、参数列表


一个实际的输出函数:(作用输出一个数组,大小是size,不知道数组的具体类型)
    template<class T>#模板函数,用T代替具体的类型
    void print(const T array[],int size){
        int i;
        for(i=0;i<size;i++)cout<<array[i];
        return;
    }
int a[10];print(a,10);


类模板:像一个容器,给它一个/多个参数,这个/些参数表示不同的数据类型。调用类模板时,指定参数,由编译系统根据参数提供的数据类型自动生成相应的模板类


类模板的定义
template<class T>#类模板的首部,声明类模板的参数
class Carray{
    T*ptrElement;
    int size;
public:
    Carray(int length);
    ~Carray();
    int len();
    void setElement(T arg,int index);
    T getElement(int index);
}


使用类模板声明变量
Carray<int> arrayInt(50),*ptrArrayInt;
#创建一个元素类型为int的Carray模板类,并声明该模板类的一个对象,以及一个指针


不同模板参数参数的模板类,不是同一个类






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值