J. *_*Doe 8 c++ operator-overloading
根据Deitel的9ed C++如何编程,p.439-440:
二元运算符可以作为具有一个参数的非静态成员函数重载,或者作为具有两个参数的非成员函数重载(其中一个参数必须是类对象或对类对象的引用).
那么,在类对象旁边还是对类对象的引用还有什么其他对象?我什么都想不到.
R S*_*ahu 13
那么,在类对象旁边还有对类对象的引用还有什么其他对象?
有由语言定义的基本类型,例如int,double.基本类型的实例也是对象.
假设你有:
struct Foo { ... };
Run Code Online (Sandbox Code Playgroud)
您可以将该operator+函数作为非成员函数重载
Foo operator+(Foo , int);
Foo operator+(Foo& , int);
Foo operator+(int, Foo);
Foo operator+(int, Foo&);
Run Code Online (Sandbox Code Playgroud)
在所有这些情况下,其中一个论点是a Foo或a Foo&.它也可以Foo const&.但是,你不能超载
int operator+(int, int);
Run Code Online (Sandbox Code Playgroud)
因为参数类型都不是类或类的引用.
| 归档时间: |
|
| 查看次数: |
5688 次 |
| 最近记录: |