摘要:
一 函数指针介绍 函数指针指向某种特定类型,函数的类型由其参数及返回类型共同决定,与函数名无关。举例如下: int add(int nLeft,int nRight);//函数定义 该函数类型为int(int,int),要想声明一个指向该类函数的指针,只需用指针替换函数名即可: int (*pf)( 阅读全文
摘要:
首先需要明白以下区别,我们才能更好地用C++做对leetcode 中的377题目。 int和long区别如下: 占内存长度不同和取值范围不同。 32位系统:long是4字节32位,int是4字节32位。 64位系统:long是8字节64位,int是4字节32位。 注意事项: 1、long类型的范围是 阅读全文
摘要:
例子一:重写二元操作符+(复数对象的+操作符与普通整型变量的+操作不一样,所以需要重写+) 实现代码一:通过友元函数来实现 实现方法二:通过类成员函数 例子二:重写一元操作符前置++ 方法一:利用友元函数 方法二:利用类成员函数 例子三:重写一元操作符后置++ 方法一:利用友元函数实现 方法二:利用 阅读全文
摘要:
C++类对象中的成员变量和对象是分区存储的: 成员变量: 普通成员变量:存储于对象中,与struct变量有相同的内存布局和字节对齐方式。 静态成员变量:存储于全局数据区 成员函数:存储与代码段 以下代码是C++编译器对其代码的处理: 首先定义一个类,其次声明一个对象,并使用其成员函数和静态函数 上述 阅读全文
摘要:
情况一:类B继承类A 结论一:定义变量时:先调用父类的构造函数,再调用派生类的构造函数;变量销毁时:先调用派生类的析构函数,再调用父类的析构函数。 情况二:在类B中使用类A类型的变量作为成员变量 结论二:定义变量时:先调用A中的构造函数,再调用B中构造函数;变量销毁时:先调用B的析构函数,再调用A的 阅读全文
摘要:
构造函数主要分为:默认构造函数和有参构造函数;构造函数又分为:普通的构造函数和copy构造函数(需传入自身的对象) 利用自己定义的构造函数解决浅拷贝所带来的潜在的析构过程中的bug。 改程序中主要是利用重写copy构造函数,通过给对象在自由存储区(堆)重新分配自己的存储空间,来实现深copy,从而避 阅读全文
摘要:
概念 引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。 使用方法 引用的声明方法:类型标识符 &引用名=目标变量名; 与指针的区别 引用是C++对C语言的一个重要的扩展,与指针类似,但仍有一些不同点,主要分为以下几点: 从内存上讲,系统为指针分配内存空间,而引用与绑定的对象 阅读全文
摘要:
题目 给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。 示例 1: 示例 2: 阅读全文
摘要:
题目 初始时有 n 个灯泡关闭。 第 1 轮,你打开所有的灯泡。 第 2 轮,每两个灯泡你关闭一次。 第 3 轮,每三个灯泡切换一次开关(如果关闭则开启,如果开启则关闭)。第 i轮,每 i 个灯泡切换一次开关。 对于第 n 轮,你只切换最后一个灯泡的开关。 找出 n 轮后有多少个亮着的灯泡。 示例: 阅读全文
摘要:
给定一个字符串数组 words,找到 length(word[i]) * length(word[j]) 的最大值,并且这两个单词不含有公共字母。你可以认为每个单词只包含小写字母。如果不存在这样的两个单词,返回 0。 示例 1: 示例 2: 示例 3: 阅读全文