C++C语言

C++学习笔记一

2018-09-22  本文已影响27人  HYIndex

对象和类

  1. 面向对象编程(OOP)特性

  1. 访问控制

  1. 实现类成员函数

  1. 内联方法

  1. 使用类

Test t1(); // 注意这不是表示使用默认构造函数,而是声明了一个函数原型
Test t1;
Test t2(10);
Test* t3 = new Test();
  1. 构造函数和析构函数

Point p1 = Point(1, 2); //显式调用
Point p2(3, 4); //隐式调用
Point* p3 = Point(5, 6); //结合new运算符调用
Point p; //默认构造函数隐式版本

如果没有提供任何构造函数,则C++会提供默认构造函数,拷贝构造函数转移构造函数
如果定义了构造函数,建议同时提供默认构造函数
两种方法定义默认构造函数:

  • 给所有参数提供默认值
  • 重载一个没有参数的构造函数
  • 构造函数大部分情况声明为public
  • 构造函数可以重载
  • 构造函数不能声明为虚函数

如果创建的是静态存储类对象,则其析构函数在程序结束时自动被调用
如果创建的是自动存储类对象,则其析构函数在程序执行完代码块时自动被调用
如果是new创建的对象,将驻留在堆区中

  1. const成员函数

cosnt Point p = Point(1, 2);
p.show(); //如果show方法为非const方法,编译器将拒绝执行该语句

对于有参数的方法可以通过将参数声明为const引用或指向const的指针解决
对于没有参数的方法,将const放在方法圆括号的后面

void show() const;
void Point::show() cosnt {}
  1. 对象数组

调用默认构造函数

Point points[5];

调用构造函数初始化

Point points[2] = {
    Point(1, 2),
    Point()
};
  1. 作用域内枚举

enum class egg {SMALL, MEDIUM, LARGE, JUMBO};
enum class t_shirt {SMALL, MEDIUM, LARGE, XLARGE};

使用时需要用枚举名来限定枚举量c

egg choice = egg::SMALL;
t_shirt size = t_shirt::SMALL;
enum class : short egg {SMALL, MEDIUM, LARGE, JUMBO};
  1. 小结

面向对象编程强调的是程序如何表示数据. 使用OOP方法解决问题的第一步是根据它与程序之间的接口来描述数据,从而指定如何使用数据, 然后设计一个类实现接口. 一般来说, 私有数据成员存储信息, 公有成员方法提供访问数据的唯一途径. 类将数据和方法组合成一个单元, 其私有性实现数据隐藏.

上一篇 下一篇

猜你喜欢

热点阅读