c++学习笔记 二(geekband)

Class的两个经典的分类

class without pointer member(s)

class with pointer mumber(s)

类的特殊成员函数

构造函数

与内置类型的初始化操作相似,将类的数据初始化,初始化的顺序与类内定义的数据成员顺序相同;

类名(形参表){...}

无返回值类型,其他与成员函数一样。

拷贝构造函数

与拷贝构造形式相似,数据在类中传递

类名(类名 &对象名){...}

拷贝赋值函数

操作符=的重载

类类型 &  operator =(类名& 对象名){...

return *this

}

析构函数

在程序结束是调用,做收尾工作

~类名(){...}

动态内存

程序中栈内存是静态内存,堆内存是动态内存可以使用new来分配动态空间;

类名*P=new 类名;

与delete P;配合使用

也可以分配动态数组

类名*P=new 类名[];

与delete []P配合;

切记:一定要用delete 释放内存,否则内存泄漏;


类的静态数据成员

静态数据成员

用关键字static声明

为该类的所有对象共享,静态数据成员具有静态生存期。

必须在类外定义和初始化,用(::)来指明所属的类。

类的静态函数成员

类外代码可以使用类名和作用域操作符来调用静态成员函数。

静态成员函数主要用于处理该类的静态数据成员,可以直接调用静态成员函数。

如果访问非静态成员,要通过对象来访问。


面对对象

继承    复合    委托

继承

有三种方式继承 :public ,protect,private

常用公用继承

继承的构造函数

先初始化基类,再初始化派生类。

派生类名::派生类名(参数表):基类名1(基类1初始化参数表),  ...  ,基类名n(基类名n初始化参数),成员对象名1(成员对象1初始化参数列表), ... , 成员对象名m(成员对象m初始化参数列表)

{

派生类构造函数的其他操作;

}

继承的析构函数

先初始化派生类,再初始化基类。


虚函数

non-virtual 你不希望派生类继承重新定义;

virtual 你希望通过派生类继承重新定义;

pure virtual  你希望派生类继承并且一定要重新定义;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy阅读 9,544评论 1 51
  • C++文件 例:从文件income. in中读入收入直到文件结束,并将收入和税金输出到文件tax. out。 检查...
    SeanC52111阅读 2,866评论 0 3
  • 1. 结构体和共同体的区别。 定义: 结构体struct:把不同类型的数据组合成一个整体,自定义类型。共同体uni...
    breakfy阅读 2,154评论 0 22
  • 第一章 计算机与C++编程简介 C++程序6个阶段编程 ->预处理->编译->连接->装入->执行1.程序在编译器...
    rogertan30阅读 4,129评论 0 1
  • 人是很奇怪的动物,或者奇怪的只是我! 有时候喜欢在微信上发一些自己的状态和爱好,关注的人多的时候,心情不错,觉得被...
    DL阿懒阅读 180评论 0 0