C++关于运算符的重载(一览表)及函数重载!

    科技2022-07-10  101

    运算符重载

    函数重载

    例题:

    2个同名成员函数,可以重载的是()?

    正确答案: B C 你的答案: A B D E (错误) int A::f() 和double A::f() void A::f(int) 和void A::f(short) void A::f() 和void A::f() const void A::f(int) 和void A::f(const int) const int A::f() 和int A::f()

    解答:A.B.E.选项: 不同的返回值不能区分重载函数,只有函数名、形参个数、形参类型可以 C.选项: 常成员函数的const限定符用于修饰隐式第一形参this this的原类型为 复制代码 Type * const this; 是一个指针常量 成员函数加上const修饰后 this 的类型变为 复制代码 const Type * const this; 是一个指向常量的指针常量 编译器通过这个手段 令常成员函数作用于一个常量对象 实现了常成员函数内不能修改当前对象的数据成员的语言特性 C++规定 重载函数的指针形参 如果要以const进行区分 只有当修饰的const为底层const 而非顶层const时才可以区分 也就是说 const必须修饰指针指向的对象而非指针本身 所以假如this指针是由原类型变为 复制代码 Type * this; 那么是不能区分该参数的 D.选项也是一个很好的顶层const的例子 对于一个普通的非复合类型 其const总是顶层const(修饰本身) 对于一个引用 其const总是底层const(修饰所引用的对象)

    Processed: 0.027, SQL: 8