您的位置:首页 > 编程语言 > C语言/C++

c++primer plus阅读笔记(五)

2017-09-15 11:14 288 查看

const成员函数

cont Time a;
a.show(); //illegal

//对于一个const对象,无法确定调用成员函数show()是否会改变a的数据成员,所以将会报错
//为此,提出了const成员函数限定该函数无法修改当前对象的数据成员,如下:
class Time{
void show() const{
//当前成员函数不能修改当前对象的数据成员
}
};


运算符重载–成员函数

对于运算符重载的成员函数来说,运算符左边的为对象,运算符右边的为第一个函数参数

//类中重载运算符
class Time{
...
Time operator +(const Time & t) const;
}

Time Time::operator+(const Time& t) const{
...
}

Time a,b;
//使用
a=a.operator+(b);//方式1
a=a+b;           //方式2

//其中
operator +和operator+两种写法无论是在创建还是在调用的时候都可以使用。


运算符重载–非成员函数

对于运算符重载的非成员函数来说,运算符左边的第一个函数参数,运算符右边的为第二个函数参数

class Time{
...
ostream& Time::operator <<(ostream& tout,const Time& t) ;
}

ostream& Time::operator <<(ostream& tout,const Time& t){
...
return tout;
}

Time a;
//使用
operator << (cout,a);//方式1
cout<<a;             //方式2


转换函数–成员函数

可以将对象转化成基本类型的成员函数

class Time{

...
int num_=2;
operator int(){
return num_'
}
...
};

//和c++中的强转是一样的
Time a;
int num=int(a);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: