c++ day 6左右值引用,面向对象

左值右值

说到左值引用,要先明白什么是左值,左值就是储存这数据的变量, 可以获取到内存地址的变量, 这些变量取引用就是左值引用, 右值引用是不可取内存地址的操作,如,表达式,1+1 这种, 正常情况下左值引用只能绑定左值,右值引用只能绑定右值, 但是, const 关键字会让左值引用变得不同,它可以接收右值

左值具有持久的状态,有独立的内存空间,右值要么是字面常量,要么就是表达式求值过程中创建的临时对象

引用就是变量的别名, 可以通过引用来换取到变量的值,
定义:

int a = 10;
int &c = a;  // 定义左值引用
int &&d = 10;  // 定义右值引用
cout << c << endl;   // 输出10
cout << d << endl;    // 也是输出10

面向对象

跟python差不多,都使用到 class

class Student{
private:
    string name;   // 姓名
    int age;  //年龄

public:
    void read(){
        std::cout << "学生在看书" << std::endl;
    }
};

class 定义一个类, private 就是将属性或方法私有化,只能类内部进行访问或调用, 而 public 下的属性或方法可以在实例对象中使用, protected` : 类内、子类及友元函数可访问

创建类的实例对象可以使用栈内存,也可以使用堆内存, 栈内存直接声明就行, 堆内存要new 创建

class Student{
private:
    string name;   // 姓名
    int age;  //年龄

public:
    void read(){
        std::cout << "学生在看书" << std::endl;
    }
};


  Student stu1 ;   // 栈内存,返回的正常的对象
  Student *stu2 = new Student;   // 堆内存, 返回的是对象的指针
类外部绑定方法

可以在类的外部绑定类方法, 先在类中定义方法,然后在外部的函数中将类绑定到函数上, 如:

class Student{
private:
    string name;   // 姓名
    int age;  //年龄

public:
    void read(){
        std::cout << "hello c++" << std::endl;
    };
    void sayhi();
};

void Student::sayhi(){
cout << "hello" << cout;
}

只需要在函数名前绑定 类的名字,就可以将这个函数当做类的方法了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值