2021-07-08

  • List item

指针的应用:在这里插入图片描述
整型变量存放数据,一级指针存放整型变量的地址,二级指针存放一级指针的地址。
*s代表p的值,**s代表a的值。

  • List item
    c++中类与对象的关系:在这里插入图片描述

  • List item
    关于this指针:
    编译器对程序员自己设计的类型分三次编译:
    第一,识别和记录类体中属性的名称,类型和访问权限,与属性在类体中的位置无关。(如class CGoods中的Name,Price,Total_value;)
    第二,识别和记录类体中函数原型(返回类型+函数名+参数列表),形参的默认值,访问限定,不识别函数体。
    第三,改写在类中定义函数的参数表和函数体,改写对象调用成员函数的形式。
    调用函数时指针才会产生,调用结束指针消失。

  • List item
    关于this指针的应用:在这里插入图片描述
    在代码中 this.Price=10错误的原因为:.的优先级比**的优先级高,程序会先执行this.Price,所以要在this.Price=10中给*this带上括号。

  • List item
    指针的应用:
    利用指针的好处是不用占用内存,能节省空间。在这里插入图片描述
    关于类模板的应用:在栈内存入几个数据,结果输出
    方法为:先输入的后输出。
    #include<stdio.h>
    #include<stdlib.h>
    #include<assert.h>
    #include<string.h>
    #include
    using namespace std;
    template //<>里面是类型
    class SeqStack { //栈 先进后出
    private:
    Type* data; //若上列<>里面为int类型,则data就代表int,供下列代码使用。
    int maxsize;
    int top;
    public:
    SeqStack(int sz = 10):maxsize(sz),top(-1) {
    data = (Type*)malloc(sizeof(Type) * maxsize);
    if (data == NULL)exit(1);
    }
    ~SeqStack() { //析构函数
    free(data);
    data = NULL;
    maxsize = 0;
    top = -1;
    }
    int GetSize()const { return top + 1;}
    bool Is_Empty()const { return top == -1;}
    bool Is_Full() const { return GetSize() == maxsize; }
    bool Push(const Type& x) {
    if (Is_Full())return false;
    data[++top] = x;
    return true;
    }
    Type& GetTop() {
    return data[top];
    }
    const Type& GetTop()const {
    return data[top];
    }
    void Pop() {
    –top;
    }
    };
    int main() {
    int i = 0;//int i(0); int i=int(0);
    SeqStack ist = SeqStack();
    ist.Push(12);
    ist.Push(23);
    ist.Push(34);
    ist.Push(45);
    while (!ist.Is_Empty()) {
    int x = ist.GetTop();
    ist.Pop();
    cout << x << endl;
    }
    return 0;
    }
    关于指针的应用:
    #include
    using namespace std;
    class CGoods {
    private:
    char Name[20];
    int Amount;
    float Price;
    float Total_value;
    public:
    //void RegisterGoods(CGoods this,const char,int,float);//输入数据
    void RegisterGoods(const char*, int, float);//输入数据
    //void CountTotal(CGoods *this)
    void CountTotal() {
    Total_value = Amount * Price;
    }
    //void GetName(CGoods *this,char name[])
    void GetName(char name[]) { //读取商品名
    strcpy_s(name, 20, Name);
    }
    //int GetAmount(CGoods *this) //读取商品数量
    float GetAmount() {
    return Amount;
    }
    //float GetPrint(CGoods *this) //读取商品单价
    float GetPrice() {
    return Price;
    }
    //float GetTotal_value(CGoods this) //读取商品总价值
    float GetTotal_value() {
    return Total_value;
    }
    };
    //void CGoods::RegisterGoods(CGoods this,const char name,int amount.float price)
    void CGoods::RegisterGoods(const char
    name, int amount,float price) {
    strcpy_s(this->Name, 20, name);
    this->Amount = amount;
    this->Price = price;
    }
    int main01() {
    CGoods c1, c2;
    c1.RegisterGoods(“iphone”, 10, 6800);
    //RegisterGoods(&c1,“iphone”, 10, 6800);
    c1.CountTotal();
    c2.RegisterGoods(“huawei”, 12, 7800);
    //RegisterGoods(&c2,“huawei”, 12, 7800);
    c2.CountTotal();
    return 0;
    }

  • List item

类的缺省函数:
1.构造函数
2.拷贝构造函数
3.析构函数
4.赋值运算符
5.取值运算符
6.移动构造函数
7.移动复制
8.赋值语句
构造函数返回构建对象的地址,析构函数也有返回值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值