![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
Strivee_
厚积薄发,天助自助者也!
Stay hungry,stay young!
展开
-
C++——类模板相关知识
本文章将对类模板的相关内容进行说明,如有不足,欢迎指正。类模板的知识点可以分为以下几点: 1. 类模板 2. 类模板中成员方法的模板 3. 类模板中成员方法的模板的特例化 4. 拷贝构造函数的模板和特例化 类模板具有以下特征:1. 类模板如果不使用,则不会进行实例化2. 类模板中成员方法的模板特例化不允许在类外实现,因为其绝对依赖于模板补充:代理:一个类的成...原创 2018-11-25 19:54:28 · 233 阅读 · 0 评论 -
剑指offer16:数值的整数次方
(一)题目描述 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。不得使用库函数,同时不需要考虑大数的问题。(二)思路分析 算法的时间复杂度为O(logn)。通过递归实现,有一个公式:y为偶数时:x^y=x^(2/y) * x^(2/y)... 如:3^32 = (3^16) *(3^16...原创 2019-07-24 21:32:05 · 186 阅读 · 0 评论 -
剑指offer15:求二进制中1或0的个数
(一)题目描述 请实现一个函数,输入一个整数,输出该整数二进制表示中1的个数。例如,把9表示成二进制是1001,有2位是1.因此,如果输入9,则该函数输出2.(二)思路分析 把一个整数减去1,再和原整数做与&运算,会把该整数最右边的1变为0.那么一个整数的二进制表示中有多少个1,就可以进行多少次这样的操作。(三)代码实现//32位的平台#in...原创 2019-07-24 21:27:27 · 249 阅读 · 0 评论 -
C++菱形继承关系
菱形继承关系1、菱形继承是什么答:一个派生类有多个基类,多个基类又由同一个类派生2、菱形继承有什么问题答:会让高层的基类在底层的派生类中拥有多份成员,造成不合理3、菱形继承如何解决答:利用虚继承解决,在虚继承中会在本来和保存虚基类的地方保存vbptr,如果一个类中有重复的虚基类,就会让多个vbptr指向同一个虚基类作用域。4.错误的菱形继承关系示例代码:#incl...原创 2019-01-16 19:27:05 · 189 阅读 · 0 评论 -
C++继承多态面试题
(一)类的编译顺序,构造顺序,析构顺序类的编译顺序:类名->成员名->成员方法体类的构造顺序:成员对象->类对象子类构造顺序:父类->子类子类析构顺序:子类->父类(二)重载,隐藏,覆盖重载:函数名相同 参数列表不同 作用域要相同隐藏:子类隐藏父类中同名的成员方法覆盖:子类覆盖父类中相同的虚成员方法 (相同表示 同名 同返回值 同参数列表)(...原创 2019-01-15 17:01:14 · 767 阅读 · 0 评论 -
C++——继承、派生、多态
#include <iostream>#include <string>#include <stack>using namespace std;/*子类与父类作用域访问权限示例class Animal //sizeof(Animal) = 12{private: int a;public: int b; //会被继承 但无法在子类...原创 2019-01-11 14:12:28 · 751 阅读 · 0 评论 -
C++——内存池(链式栈)
Mstack.h#ifndef MSTACK_H#define MSTACK_H#include <iostream>using namespace std;#define LEN 10template<typename T>class Mstack{public: class Node; Mstack() //构造函数 { _top =...原创 2019-01-04 16:11:17 · 146 阅读 · 0 评论 -
C++——内存池(链式队列)
Mqueue.h#ifndef MQUEUE_H#define MQUEUE_H#include <vector>#include<mutex> //加锁的头文件#define LEN 10//mutex m;//一级 >128字节 系统申请//二级 <128字节 内存管理//内存池template<typename T>...原创 2019-01-03 22:02:08 · 379 阅读 · 0 评论 -
C++——用类模板实现栈
#include <iostream>#include <assert.h>using namespace std;//用类模板实现栈template<typename T>class Stack{private: T *_data; int _size; int _top; public: void Push(T val)...原创 2018-12-01 20:19:33 · 2810 阅读 · 0 评论 -
C++——运算符重载相关知识
c++允许在同一作用域中的某个函数和运算符指定多个定义,分别称为函数重载或者运算符重载。程序员可以重定义或重载大部分 C++ 内置的运算符。这样,他就能使用自定义类型的运算符。重载的运算符是带有特殊名称的函数,函数名是由关键字 operator 和其后要重载的运算符符号构成的。与其他函数一样,重载运算符有一个返回类型和一个参数列表。//运算符重载/*= + - ++ -- <&...原创 2018-12-01 19:39:32 · 284 阅读 · 0 评论 -
C++——函数模板相关知识
本文章将对模板函数的相关内容进行说明,如有不足,欢迎指正。函数模板的知识点可以分为以下几点:1. 函数模板2. 函数模板的作用域3. 函数模板的显式隐式实例化4. 函数模板的重载5. 非模板函数 函数模板具有以下特征:1. 函数模板本身不进行编译,实例化出的函数代码则要进行编译2. 函数模板类型自推,能够根据参数类型自动推演出模板类型3. 编译时期根据模...原创 2018-11-24 21:37:25 · 549 阅读 · 0 评论 -
NULL与nullptr的区别
NULL来自C语言,一般由宏定义实现,而nullptr则是C++11的新增关键字。在C语言中,NULL被定义为(void*)0,而在C++语言中,NULL则被定义为整数0。编译器一般对其实际定义如下:#ifdef__cplusplus#defineNULL0#else#defineNULL((void*)0)#endif出现C++和C定义不一致的原因是,在C++中不允...转载 2019-07-21 17:28:09 · 405 阅读 · 0 评论