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;
} 
相关推荐
彩妙不是菜喵几秒前
C++:类与对象
开发语言·c++
董世昌412 分钟前
添加、删除、替换、插入元素的全方法指南
java·开发语言·前端
Yu_Lijing3 分钟前
基于C++的《Head First设计模式》笔记——抽象工厂模式
c++·笔记·设计模式
源代码•宸7 分钟前
Leetcode—712. 两个字符串的最小ASCII删除和【中等】
开发语言·后端·算法·leetcode·职场和发展·golang·dp
无风听海8 分钟前
C# 中对象相等性判断的全面解析
开发语言·c#
寻星探路8 分钟前
【Python 全栈测开之路】Python 基础语法精讲(三):函数、容器类型与文件处理
java·开发语言·c++·人工智能·python·ai·c#
txinyu的博客8 分钟前
函数的可重入性决定了函数的线程安全?volatile被认为是可重入关键字?
c++
逑之9 分钟前
C语言笔记8:操作符
c语言·开发语言·笔记
无限进步_10 分钟前
【C语言&数据结构】相同的树:深入理解二叉树的结构与值比较
c语言·开发语言·数据结构·c++·算法·github·visual studio
枫叶丹415 分钟前
【Qt开发】Qt系统(五)-> Qt 多线程
c语言·开发语言·c++·qt