C++:面向对象高级编程

大气的编程习惯(1)尽可能使用构造函数的初始化列表(2)函数传参时尽量传引用:在条件允许下尽量传const引用(3)函数返回值尽量返回引用(4)如果函数不需要修改对象状态则声明为常量成员函数:常对象只能调用常量成员函数(5)数据部分尽可能privateC++的演化C++的组成C++类的两个经典分类(1)不带指针成员变量的类:class without pointer members(2)带指针成员变量的类:class with pointer members基于对象(Object.
摘要由CSDN通过智能技术生成
  • 大气的编程习惯
    (1)尽可能使用构造函数的初始化列表
    (2)函数传参时尽量传引用:在条件允许下尽量传const引用
    (3)函数返回值尽量返回引用
    (4)如果函数不需要修改对象状态则声明为常量成员函数:常对象只能调用常量成员函数
    (5)数据部分尽可能private
  • C++的演化
    在这里插入图片描述
  • C++的组成
    在这里插入图片描述
  • C++类的两个经典分类
    (1)不带指针成员变量的类:class without pointer members
    (2)带指针成员变量的类:class with pointer members
  • 基于对象(Object Based) vs 面向对象(Object Oriented)
    (1)基于对象:单一的class设计:类与类之间都是单一的,没有联系
    (2)面向对象:多重class的设计:类与类之间是存在各种关系的
  • 类之间的关系
    (1)组合:has-a
    (2)继承:is-a vs is-like-a
    (3)委托
  • C vs C++:关于数据与函数
    在这里插入图片描述
  • C/C++头文件防重复包含
#ifndef __COMPLEX_H__
#define __COMPLEX_H__

...

#endif // __COMPLEX_H__
  • 类模板(class template)vs 函数模板(function template)
template <class T>
class complex {
   
	// 函数模板作为类模板的友元
	template <class E> // 这句话不能省略: 是不是E无所谓
	friend complex<E>& __doapl(complex<T> *, complex<E> &);

	template <class E>
	friend ostream& operator<<(ostream &, const complex<</
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值