首页 > 编程语言 >c++ 丢失笔记 [运算符重载、this指针、复制与拷贝构造、生存周期、箭头操作符]

c++ 丢失笔记 [运算符重载、this指针、复制与拷贝构造、生存周期、箭头操作符]

时间:2023-08-20 16:47:49浏览次数:45  
标签:++ 笔记 运算符 操作符 c++ 重载 指针

运算符重载、this指针、复制与拷贝构造、生存周期、箭头操作符

有一部分是学校的OJ里做题需要就提前学了,然后没记笔记,有一部分是笔记丢了。不打算补这些笔记。

不过还是在这里mark一下++运算符的重载。
因为++运算符可以前置也可以后置,所以这里需要注意一下,如果是后置++,需要一个int伪参数作以区分。

以下是在 C++ 中可以被重载的运算符:

  1. 算术运算符:'+','-','*','/','%','++','--'
  2. 位运算符:'&','|','~','^','<<','>>'
  3. 赋值运算符:'=','+=','-=','*=','/=','%=','&=','|=','^=','<<=','>>='
  4. 关系运算符:'==','!=','<','>','<=','>='
  5. 逻辑运算符:'!','&&','||'

以下是在 C++ 中只能被重载为友元函数的运算符:

  1. 左移运算符:'<<'
  2. 右移运算符:'>>'
  3. 函数调用运算符:'()'
  4. 下标运算符:'[]'
  5. 指针成员访问运算符:'->'
  6. 解引用运算符:'*'

标签:++,笔记,运算符,操作符,c++,重载,指针
From: https://www.cnblogs.com/orzmiku/p/17644217.html

相关文章

  • C++ 隐式转换与explicit关键字
    隐式转换与explicit关键字隐式转换函数构造的隐式转换,直接上代码:#include<bits/stdc++.h>classEntity{private: std::stringm_Name; intm_Age;public: Entity(conststd::string&name) :m_Name(name),m_Age(-1){} Entity(intage) :m_Name("Unknown"),m_A......
  • C++ Vector数组优化
    Vector数组优化问题这是一段没有优化的代码:#include<iostream>#include<vector>classEntity{public: intx,y;public: Entity(intx,inty) :x(x),y(y){} Entity(constEntity&e) :x(e.x),y(e.y){ std::cout<<"Copied!"<<st......
  • C++ 智能指针
    智能指针使用智能指针需要引入memory头文件unique_ptr#include<iostream>#include<string>#include<memory>classEntity{public: Entity(){ std::cout<<"CreatedEntity!"<<std::endl; } ~Entity(){ std::cout<<&q......
  • C++ 链接库
    C++中使用库分为两种,静态库和动态库。简单来说,静态库最后会被编译进二进制文件,动态库不会,需要二进制文件从外部载入。以下操作均在VisualStudio2022中进行,以32位GLFW为例子(glfw.org)。首先下载glfw32位的可执行程序。在解决方案目录创建一个Dependencies文件夹(名字无所谓),然后......
  • C++ 创建库并使用
    创建库并使用!>使用VisualStudio2022创建项目和解决方案首先创建一个空项目,这里叫Game,同时VisualStudio会帮你创建解决方案。这个项目是我们的应用程序。创建项目来存库!>以静态库为例、右键解决方案,添加新项目Engine。此时就有了两个项目,Game和Engine:打开E......
  • C++ 类
    类类是一种把数据和功能结合在一起的方法。使用class来定义一个类,像这样:classPlayer{//创建一个Player类intx=0,y=0;intspeed=1;};通过类创建一个对象(实例化),像这样:Playerplayer;成员变量可以使用点(.)来访问对象的属性。player.speed=2;但......
  • C++ 类和结构体内外的Static
    类和结构体外的Static这里的static指的是在类外的static,意味着你要声明的是static的符号,链接将只在内部。(换句话说作用域只在他所在的.cpp文件)。下面是几组例子来理解:例子1:main.cpp#include<iostream>usingnamespacestd;voidfun(){cout<<"fun()inmain.cpp"......
  • C++ 继承
    继承一个类可以继承另一个类,避免了代码复写。被继承的类被叫做基类,继承的类叫做派生类。(或者说是父类和子类)继承类型当一个类派生自基类,该基类可以被继承为public、protected或private几种类型。继承类型是通过上面讲解的访问修饰符access-specifier来指定的。我们几乎......
  • C++ 构造函数与析构函数
    构造函数和析构函数构造函数构造函数会在实例化对象的时候执行,可以在实例化时传入参数。构造函数没有返回值。不需要声明返回值。构造函数的函数名与类名保持一致。//classname:PlayerPlayer(intxa=0,intya=0){//构造函数,传入初始坐标进行初始化......
  • C++ 变量初始化总结
    堆空间,new操作初始化1、对于有自己写构造函数的类,不论类型名后面有没有括号()或者数组[],都用构造函数进行初始化,如果构造函数delete,则编译报错;2、如果没有构造函数,则不加括号的new只分配内存空间,不进行内存的初始化,3、而加了括号()的new会在分配内存的同时初始化为0。栈空间......