滴水逆向——C++_引用、友元、运算符重载

本文详细介绍了C++中的引用特性,包括其作为变量别名、不可重新赋值的性质,以及如何理解引用不占用空间。接着探讨了友元函数在运算符重载和共享数据时的作用,对比了友元函数与成员函数的差异。最后,阐述了运算符重载的概念,并指出不能重载的运算符。
摘要由CSDN通过智能技术生成

1、引用

#include<stdio.h>
#include<Windows.h>
struct Base
{
	int x;
	int y;
	Base(int x, int y)
	{
		this->x = x;
		this->y = y;
	}
};
void PrintByPoint(Base* pb)
{
	printf("%d  %d\n", pb->x, pb->y);

	pb = (Base*)0x123456;

	//为所欲为...						
}

void PrintByRef(Base& refb, Base* pb)
{
	printf("%d  %d\n", refb.x, refb.y);
	printf("%d  %d\n", pb->x, pb->y);
	Base b1(21, 31);
	//*pb = b1;
	//printf("%d  %d\n", pb->x, pb->y);
	//&refb = b1; //引用不能重新赋值						
	refb = b1;  //这个不是重新赋值,这个是把b1的值赋给refb代表的对象						
	printf("%d  %d\n", refb.x, refb.y);
}

int main(int argc, char* argv[])
{
	Base base(1, 2);
	PrintByRef(base, &base);
	getchar();
	return 0;
}

总结:
1.引用类型是C++里面的类型
2.引用类型只能赋值一次,不能重新赋值
3.引用只是变量的一个别名.
4.引用可以理解成是编译器维护的一个指针,但并不占用空间(如何去理解这句话?).
5.使用引用可以像指针那样去访问、修改对象的内容,但更加

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值