一、
- 所谓重载就是赋予新的含义
- 同一个运算符可以有不同的功能
- <<既可以是位移运算符,也可以配合cout <<“”<<endl;向控制台输出数据
- 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<iostream>
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 修饰成员变量,只能赋值一次????