运算符重载 尽管c++不予续生成新的运算符,但是与徐冲在现有的大多数运算符,使这些元算符可以与类的对象结合使用,运算符具有新类型的定义! 用于类对象的运算符必须重载,但有两种情况例外:赋值运算符=无须显示重载就可以用于每一个类。赋值运算符的默认行为是类数据成员的逐个成员赋值运算符。这种默认复制行为对于带有指针的类是很危险的,我们将对这种类显示重载赋值运算符!同样地址运算符无须重载即可用于每一个类的对象,它只返回内存中的对象的地址。 运算符的重载不是自动完成的,程序员必须为索要执行的操作编写运算符的重载函数,有时候最好把这些函数用作成员函数,有时最好申明为有元函数! C++唯一的三元运算符(?:)是不能被重载的! 在重载运算符()[],—〉或者任何赋值运算符是,运算符重载函数必须申明为类的一个成员函数,其他的运算符可以是非成员函数! 当运算符函数作为成员函时时显示,最左边的操作书必须是缘算符类的一个类对象(或者是引用)。如果左边的操作数是不同类的对象或者是一个内部类型的对象,该运算符函数必须是一个非成员函数来实现的! 重载<<元算符必须有一个ostream&类型的左操作数(cout<<classObject中的cout),因此它必须是一个非成员的函数。类似重载>>运算符必须有一个类型为istream&的左操作符(cin>>classObject中的cin),所以他也必须是一个非成员函数! 非成员函数不一定是有元函数!只要public类中提供了相应的get和set方法!

评论