Boolan-C++第一周笔记

如何编写一个不带指针成员变量的类

关键点

  • c和c++的不同
    • c++中有对象的概念,每个对象中包含自己的数据和方法
  • 头文件中要进行防卫式声明
  • c++程序的基本形式
    • 类头文件,cpp文件,标准库头文件
    • include<>引用标准库头文件,include""引用类头文件
  • 头文件的布局
    • 防卫式声明
#ifndef __MYCOMPLEX__
#define __MYCOMPLEX__
...
#endif   //__MYCOMPLEX__
  • 头文件的布局
    • 前置声明
    • 类声明
    • 类定义
  • 内联函数
    • 类声明中定义的函数,自动为inline;但是函数是否真的为inline,由编译器决定
    • 函数前添加inline
  • 类声明中,数据和函数访问权限关键字
    • public
    • private
    • protected
  • 在构造函数的初值列中完成对类中数据的初始化操作,而不是在构造函数体内进行赋值;默认参数的设定
  • c++的函数重载规则(overloading)
    • 函数同名,但是编译器中不同名
    • 构造函数常常有重载现象
    • 重载函数的参数必须不同,默认参数和没有参数的情况不符合要求
  • 构造函数放在private中
    • 单例模式Singleton
  • const的使用
    • const在函数体的大括号前,表示不能改变函数体中任何数据
  • 参数传递的两种形式:pass by value && pass by reference (to const)
    • pass by value:按传递参数的类型复制内容,如果参数过大,会占用过多内存
    • pass by reference:只传递一个指针大小
    • pass by reference时,如果不希望传递的参数被改变,需要在参数前增加const关键字
  • 返回值传的两种形式:pass by value && pass by reference (to const)
  • 参数和返回值的传递,尽量按照by reference(在情况允许时)
  • 友元:可以访问类的私有数据和方法
  • 相同class的各个objects之间互为友元
  • 一个好的类对象设计的几个要素
    • 类数据一定是private的
    • 参数和返回值尽可能按照reference传递,视情况增加const
    • 函数方法要考虑const的使用
    • 构造函数中的初始列中初始类数据
  • 操作符重载
    • 每个函数中都隐藏一个默认函数,this(类对象本身)
    • 当by reference传递时,传递者无需关注接收者是以reference形式接收
    • 不建议操作符函数的返回值类型为void,因为可能会连续使用操作赋函数
c1 += c2 += c3;
  • 成员函数
  • 非成员函数
    • 二元操作符和一元操作符

思考

  • 多个类对象对应多个类对象数据,却都对应同一份类函数,如何实现?
  • 何时不可以by reference传递返回值
    • 当返回值为local时,函数的返回值不可以按照引用传递
    • local的对象在函数执行完毕后会被销毁,如果传递引用会导致不可控的错误

你可能感兴趣的:(Boolan-C++第一周笔记)