C++运算符重载 const用法

一、

  • 所谓重载就是赋予新的含义
  • 同一个运算符可以有不同的功能
  • <<既可以是位移运算符,也可以配合cout <<“”<
  • C++本身已经对这些运算符进行了重载
  • 如果让运算符重载了,就可以让两个对象相加
class integer
{
public:
	integer():m_num(0){}
	integer(int num):m_num(num){}
	const integer operator+(const integer & other)const
	{
		count << "重载了运算符+ 以便于实现两个整型对象相加" << endl;
		return integer(this ->m_num + other.m_num);
	}
	private:
		int m_num;
}

二、const
例:#define 的不安全性,define只是字符替代

#include
using namespace std;
main() {
    int a=1;
    //define只是字面替换 在预编译时进行了字符替换
    #define T1 a+a
    #define T2 T1-T1
    cout<<"T2 is "<<T2<<endl;
    return 0;
        }
  //输出结果为T2 is 2

1.const修饰成员变量

vodi ConstDemo()
{
	int num1 = 1024;
	const int num2 = 111;
	num2 = 2034; //错误  num2只能赋值一次?
	const int * ptr1_num1 = &num1; 
	int const *ptr2_num1 = &num1;
	//1.只有一个const且在*的左边指针指向的内容不可用修改,常量不能通过该指针修改实际数据
	//指针本身是变量,可以指向其他的内存单元
	int * const ptr3_num1 = &num1;
	//2.只有一个const且位于*的右侧:表示指针本身是常量,不能指向其他的内存单元,指向的内容可以修改
	const int * const ptr4_num1 = &num1;
	//3.const位于*的左右两侧,表示指针和指向的内容都不可用修改
	
}

2.const修饰函数参数

void ConstTest2(const int num)  //传递来的参数在函数体内不能改变
{

}
  • const 修饰成员变量,只能赋值一次????

你可能感兴趣的:(C++,c++,开发语言,后端)