c++的引用和类的初见

&引用

引用必须创建时赋值。

int b;

int &a=b;如果 int &a会报错。

引用不可以修改。

int c;

a=c;会报错

一个值可以多次引用。

int &d=a;相当于&d=b;

引用不会开辟新的空间。

如图int &b=a;&c=a;&d=a;a,b,c,d.共用一块空间。

引用的权限可以缩小,

int b=0;

const int&a=b;

b可以++;

a不可++;

但改b,a也会改

引用权限不可放大

const int b=0;这是权限放大。

int&a=b;

指针和引用的区别

指针 引用

指针要开辟空间存储变量的地址 不开空间,指向原地址

不用初始化,只是建议初始化 必须初始化

需要解引用才可以访问原对象 直接访问原对象

sizeof是4/8, 和引用的类型一样

会出现野指针 很少有。

inline函数

inline是C++中的

关键字inline用于将函数指定为内联函数在函数返回类型前添加inline关键字,可提示编译器

在调用点直接展开函数体,从而避免函数调用的开销该机制主要用于优化频繁调用的简单函数,减少栈空间消耗并提升执行效率需注意,inline关键字必须与函数定义一同使用才有效,仅出现在声明前无效inline属于"实现"关键字,而非"声明"关键字。

是否展开和编译器有关。

如果函数很大会使代码臃肿,内联函数就不会展开。

如一个函数100行,一个n行的代码执行1000次函数,内联函数要加100*1000+n行;普通函数,n+100;

不能分离文件使用,因为内联函数,没用生成地址,只有声明无法使用。

c++创建内联函数是为了替代宏。

c++类

c++中NULL是int 0;

所以指针置空要用nullptr。

class是类的关键字

定义class name{};

访问限定符是c++的封装方式。

public修饰的成员在类外可以直接访问。

protected和private在类外不能直接访问。

访问权限的作用域从一个访问权限到下一个访问权限.

类中可以创建函数,c++也可以使用struct;

cpp 复制代码
#include <iostream>
using namespace std;
class jsq{
	public:
	void add(int x,int y){
		cout<<x+y<<endl;
	}
	void jian(int x,int y){
		cout<<x-y<<endl;
	}
	void cheng(int x,int y){
		cout<<x*y<<endl;
	}
	void chu(int x,int y){
		cout<<x/y<<endl;
	}
};
int main() {
	int x,y;
	cin>>x>>y;
	jsq t;
	t.add(x,y);
	t.jian(x,y);
	t.cheng(x,y);
	t.chu(x,y);
	return 0;
}

如果要函数和声明分开要加入类型

cpp 复制代码
void jsq::chu(int x,int y){
	cout<<x/y<<endl;
} 
相关推荐
qq_296544654 小时前
短视频下载教程,抖音B站视频下载
c++
HDO清风4 小时前
CASIA-HWDB2.x 数据集DGRL文件解析(python)
开发语言·人工智能·pytorch·python·目标检测·计算机视觉·restful
2201_756989094 小时前
C++中的事件驱动编程
开发语言·c++·算法
多米Domi0114 小时前
0x3f 第48天 面向实习的八股背诵第五天 + 堆一题 背了JUC的题,java.util.Concurrency
开发语言·数据结构·python·算法·leetcode·面试
2301_822377654 小时前
模板元编程调试方法
开发语言·c++·算法
csbysj20204 小时前
Python 循环嵌套
开发语言
测试_AI_一辰4 小时前
Agent & RAG 测试工程05:把 RAG 的检索过程跑清楚:chunk 是什么、怎么来的、怎么被命中的
开发语言·人工智能·功能测试·自动化·ai编程
Coding茶水间4 小时前
基于深度学习的输电电力设备检测系统演示与介绍(YOLOv12/v11/v8/v5模型+Pyqt5界面+训练代码+数据集)
开发语言·人工智能·深度学习·yolo·目标检测·机器学习
清风~徐~来5 小时前
【视频点播系统】BRpc 介绍及使用
开发语言
啟明起鸣5 小时前
【C++ 性能提升技巧】C++ 的引用、值类型、构造函数、移动语义与 noexcept 特性,可扩容的容器
开发语言·c++