不带指针的类(complex)

本文涵盖了C++中的重要编程概念,包括类模板用于泛型编程,内联函数以提高效率,构造函数的定义与使用,以及析构函数在对象生命周期管理中的角色。常量成员函数确保对象的不变性,而参数传递的选择(按值或引用)影响性能。友元机制允许外部访问私有数据,操作符重载则增强了代码的表达性。同时讨论了成员与非成员函数在重载操作符时的差异。
摘要由CSDN通过智能技术生成

下面将此部分的知识点罗列梳理,方便后续复习回顾。

1. 类模板

2. 内联函数inline:

能内联尽量内联,可以提升程序效率;但最终是否按照内联处理是由编译器决定的。

  • 类内:类内提供定义的函数默认为内联函数,不需要加inline
  • 类外:加inline限定字

3. 构造函数

名称与类名相同,可以带参数,参数可以有默认值,无返回类型(不需要),更推荐使用初始化列表而不是赋值操作。

构造函数可以有多个(函数重载),但相互之间不能有歧义

特殊情况:private构造函数->不允许外界创建对象,singleton

4. 析构函数

不带指针的类一般不需要写析构函数,调用自带的默认析构函数

5. 常量成员函数

在函数后、花括号前加const

定义一个常量成员函数实质上是把this指针在该成员函数内定义成指向常量常量指针,由此,常量成员函数体内this指针不能重新定向,它总是指向调用该常量成员函数的对象,而且,该对象的数据成员也不可以被修改

const限定字应加尽加

6. 参数传递

  • 按值传递:数据整包传递,压入栈中。弊端:数据量可能会很大。
  • 引用传递:引用的本质其实是指针,可以加const限定。函数返回值也可以传递引用

tip: 可以的情况下,尽量传递引用。

不能返回引用的情况:函数返回local临时对象

传递者不需要考虑接收者是否以reference形式接收

7. 友元 friend

可通过友元自由取得friend的私有数据成员,比通过函数访问更快。

相同类的各个对象互为友元

8. 操作符重载(成员函数)

operand operator operand类型的运算:操作符作用于左值

成员函数的第一个参数默认为this指针,指向调用者,不需要写出来

在连续运算(操作符连串使用)的情况下,需要返回引用。

9. 操作符重载(非成员函数,无this指针)

返回的绝不是reference而是value,因为返回的必定是local object(在函数中创建,离开函数生命周期就结束了)

typename():创建无名称的临时对象

-的歧义:在类外定义的话,只可能是取相反数

取正的情况下可以传回引用(就是原来的值,不需要创建临时对象)

<<的重载:作用于左侧,只能写成全局函数,不能写成类的成员函数,否则会作用于右边,不符合常规使用习惯;参数ostream&不能加const修饰

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值