![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
文章平均质量分 65
ccyanxyz
学生
展开
-
int *const p 与 const int *p
学过C/C++的同学肯定都有过那么一段被这几个东西整的晕头昏脑的时候,下面我们先看看一道题目: int a = 248, b = 4; int const c = 21; const int *d = &a; int *const e = &b; int const * const f = &a; 问下面哪些操作会被编译器禁止:选项A:*c = 32;显然错误,c是in原创 2017-05-06 00:04:56 · 878 阅读 · 0 评论 -
inline 与 define
inline函数(内联函数)是C++相对于C的一个新特性,它长这样:inline double square(double x) { return x * x; };为什么要有这么一个新特性呢?程序都是由一条一条指令组成的,要运行程序的时候,操作系统把这些指令载入到内存,CPU再一条一条 地执行这些指令。一般情况下,执行到一条函数调用的指令时,程序要先存储这条指令的内存地址,把函 数参数复制到堆原创 2017-05-06 00:06:49 · 404 阅读 · 0 评论 -
C++容器适配器的理解与使用
1.对容器适配器的理解C++提供了三种容器适配器(container adapter):stack,queue和priority_queue。stack和queue基于deque实现,priority_queue基于vector实现。举个简单的例子,我们手机充电的时候需要电源适配器来把220v的交流电转换成较低电压的直流电以供手机充电使用,220v的电压太高了,我们不需要那么高的电压,而且高电压还有原创 2017-08-18 19:41:50 · 5871 阅读 · 0 评论 -
C++模板与泛型编程(1.函数模板与类模板)
所谓泛型编程就是以独立于任何特定类型的方式编写代码,模板是泛型编程的基础。1.函数模板我们经常会遇到需要编写函数比较两个对象大小的情况,比如需要比较两个int值得大小、两个char值的大小等等,在C++以前,我们需要为每一种对象编写对应的函数,甚至必须取不同的函数名,有了C++以后,还没接触到泛型编程前我们可能会利用函数重载来避免要取多个不同名字的麻烦,但还是需要编写多个函数:int compare原创 2017-09-16 16:05:54 · 341 阅读 · 0 评论 -
C++模板与泛型(2.实现自己的Queue类模板)
在了解了模板与泛型的基础知识后,我们就可以着手编写自己的泛型程序了,现在,我们来实现一个自己的Queue类模板,实现标准库queue类的部分接口并自己添加一些操作。1.思路我们采用链表来实现Queue,我们定义了两个类:QueueItem和Queue,QueueItem用于存储Queue中元素的值,Queue中存储指向链表头和尾的两个指针。2.QueueItem因为QueueItem仅仅是一个为了实原创 2017-09-17 13:10:36 · 564 阅读 · 0 评论 -
C++模板与泛型(3.模板特化)
我们编写的模板很多时候并不是对所有的类型都是适合的,有时候甚至是错误的,这种情况下,我们需要模板特化(template specialization),模板特化就是指某个模板定义中的一个或多个模板形参的实际类型或实际值是指定的。1.函数模板特化函数模板特化形式:template关键字后接一对空尖括号<>再接模板名和一对尖括号,尖括号中指定这个特化定义的模板形参函数形参表函数体在C++模板与原创 2017-09-17 16:33:51 · 579 阅读 · 0 评论 -
C++类中指针成员的管理(值型类、智能指针)
在使用C++类的时候免不了会遇到类中需要指针成员的时候,但类成员里面一出现指针就很容易一不小心碰上各种各样的麻烦,尤其需要注意的是类对象的初始化和赋值,下面总结了一些常见解决办法。先来看看这样一个类:#include <iostream>#ifndef DEMO_H_#define DEMO_H_using std::cout;using std::endl;class Demo {原创 2017-09-01 08:21:00 · 3183 阅读 · 0 评论 -
C++类中指针成员的管理(值型类、智能指针)
在使用C++类的时候免不了会遇到类中需要指针成员的时候,但类成员里面一出现指针就很容易一不小心碰上各种各样的麻烦,尤其需要注意的是类对象的初始化和赋值,下面总结了一些常见解决办法。先来看看这样一个类:#include <iostream>#ifndef DEMO_H_#define DEMO_H_using std::cout;using std::endl;class Demo {原创 2017-09-01 08:28:33 · 1158 阅读 · 0 评论 -
C++类继承(1.基类与派生类)
类继承是OOP的三个基本概念之一(数据抽象、继承、动态绑定),它让我们可以通过修改和扩展一个已有的类(基类)来获得新的类(派生类),提高了代码的可重用性。1.基类与派生类为了说明类继承,我们首先需要一个基类。假设现在有一个Student类,记录学生在班上的编号以及姓名:#ifndef STUDENT_H_#define STUDENT_H_#include <iostream>using st原创 2017-09-12 14:22:05 · 1641 阅读 · 0 评论