
C++
dnhua
代码只是表达手段
展开
-
C++哪些运算符重载能够重载?
运算符重载是C++极为重要的语言特性之中的一个。本文将用代码实例回答——C++哪些运算符能够重载?怎样重载?实现运算符重载时须要注意哪些? 哪些运算符能够重载,哪些不可重载?C++98,C++0x,C++11对“哪些运算符重载能够重载”有一致的规定。详细例如以下:当中,非常少使用的是“,”(逗号运算符)。 标准相同规定了不可重载的运算符:当中,“::”是作...转载 2018-09-04 09:13:53 · 7565 阅读 · 0 评论 -
c/c++排坑(4) -- c/c++中返回局部变量
返回c语言中的局部变量先看一段代码猜猜,打印值:#include <iostream>using namespace std;char * func();int main(){ char *buf = func(); cout << "buf:" << buf <<原创 2018-12-09 17:16:08 · 626 阅读 · 0 评论 -
c/c++排坑(3) -- c/c++中的switch语句
switch语句的简单介绍一个 switch 语句允许测试一个变量等于多个值时的情况。每个值称为一个 case,且被测试的变量会对每个 switch case 进行检查。switch(expression){ case constant-expression : f1(); break; // 可选的 case constant-express...原创 2018-12-09 16:01:20 · 490 阅读 · 0 评论 -
c/c++排坑(2) -- c语言中的符号重载
所谓的符号重载就是在不同的上下文环境里有不同的意义。甚至有些关键字也被重载而具有好几种意义,这也是C语言的作用域规则对程序员不那么清晰的主要原因。本章内容摘自《c专家编程》P37。符号意义static在函数内部,表示该变量的值在各个调用间一直保持延续性 在函数这一级,表示该函数只对本文可见extern用于函数定义表示全局可以见用于变量,表示它在其他地方定义...原创 2018-12-09 15:14:33 · 196 阅读 · 0 评论 -
c/c++编程排坑(1)-- 数据类型的“安静”转换
这里主要介绍ANSI C的特性:当执行算术运算时,操作数的类型如果不同,就会发生转换。数据类型一般朝着精度更高、长度更长的方向转换,整型数如果转换为signed不会丢失信息,就转换为signed,否则转换为unsigned。算术转换(K&R C)首先:任何类型为char或short的操作数会被转换为int。任何类型为float的操作数会被转换成double。其次:如果...原创 2018-12-08 17:30:01 · 223 阅读 · 0 评论 -
C++文件读取
c++文件和流:ttp://www.runoob.com/cplusplus/cpp-files-streams.html到目前为止,我们已经使用了 iostream 标准库,它提供了 cin 和 cout 方法分别用于从标准输入读取流和向标准输出写入流。本教程介绍如何从文件读取流和向文件写入流。这就需要用到 C++ 中另一个标准库 fstream,它定义了三个新的数据类型:数据类型...转载 2018-09-28 15:27:19 · 29441 阅读 · 0 评论 -
c++ 中 char 与 string 之间的相互转换问题
第一部分:将 char * 或者 char [] 转换为 string可以直接赋值,转换。 第二部分:将 string 转换为 char * 或者 char [] string 是c++标准库里面其中一个,封装了对字符串的操作 把string转换为char* 有 3种方法: 1. 调用 stri...转载 2018-09-27 14:33:24 · 66594 阅读 · 1 评论 -
C++移动构造函数以及move语句简单介绍
转载自:https://www.cnblogs.com/qingergege/p/7607089.html首先看一个小例子:#include <iostream>#include <cstring>#include <cstdlib>#include <vector>using namespace std;int main()...转载 2018-09-13 14:34:09 · 325 阅读 · 0 评论 -
C和C++内存模型 C和C++内存模型
转载自:https://www.cnblogs.com/Stultz-Lee/p/6751522.htmlC分为四个区:堆,栈,静态全局变量区,常量区C++内存分为5个区域(堆栈全常代 ): 堆 heap : 由new分配的内存块,其释放编译器不去管,由我们程序自己控制(一个new对应一个delete)。如果程序员没有释放掉,在程序结束时OS会自动回收。涉及的问题:“缓冲区溢出”、...转载 2018-09-13 12:19:33 · 1286 阅读 · 0 评论 -
C++中让人忽视的左值和右值
前言为了了解C++11的新特性右值引用,不得不重新认识一下左右值。学习之初,最快的理解,莫过于望文生义了,右值那就是赋值号右边的值,左值就是赋值号左边的值。在中学的数学的学习中,我们理解的是,左值等价于等号左边的值,右值等价于等号右边的值;当我们继续学习C语言时,等号=不再叫等号,盖头换面叫做赋值号;那么来到C++我们还能这么理解吗?答案是部分否定的。假如你现在还是这样理解,那么请继续往下...转载 2018-09-12 14:26:54 · 213 阅读 · 0 评论 -
c++ new 与malloc有什么区别
几个星期前去面试C++研发的实习岗位,面试官问了个问题:new与malloc有什么区别?这是个老生常谈的问题。当时我回答new从自由存储区上分配内存,malloc从堆上分配内存;new/delete会调用构造函数/析构函数对对象进行初始化与销毁;operator new/delete可以进行重载;然后强行分析了一下自由存储区与堆的区别。回来后感觉这个问题其实回答得不怎么好,因为关于ne...转载 2018-09-12 14:24:47 · 197 阅读 · 0 评论 -
c++ 深入理解虚函数
转载自:https://www.cnblogs.com/jin521/p/5602190.html为什么使用虚函数?什么是虚函数?虚函数是为了解决什么问题?面向对象的三大特征:封装 多态 继承普通虚函数 虚析构函数 纯虚函数 抽象类 接口类 隐藏 vs 覆盖 隐藏与覆盖之间的关系 早绑定和晚绑定 虚函数表什么是多态?相同对象收到不同消息或不同对象收到相同消息...转载 2018-09-15 16:35:45 · 146 阅读 · 0 评论 -
C++ Boost库简介
boost是一个准标准库,相当于STL的延续和扩充,它的设计理念和STL比较接近,都是利用泛型让复用达到最大化。不过对比STL,boost更加实用。STL集中在算法部分,而boost包含了不少工具类,可以完成比较具体的工作。boost主要包含一下几个大类:字符串及文本处理、容器、迭代子(Iterator)、算法、函数对象和高阶编程、泛型编程、模板元编程、预处理元编程、并发编程、数学相关、纠...转载 2018-09-06 10:21:31 · 2583 阅读 · 0 评论 -
c++ 深入理解虚函数
以下内容转自:https://www.cnblogs.com/jin521/p/5602190.html为什么使用虚函数?什么是虚函数?虚函数是为了解决什么问题?面向对象的三大特征:封装 多态 继承普通虚函数 虚析构函数 纯虚函数 抽象类 接口类 隐藏 vs 覆盖 隐藏与覆盖之间的关系 早绑定和晚绑定 虚函数表什么是多态?相同对象收到不同消息或不同对象收到相...转载 2018-09-07 20:17:35 · 126 阅读 · 0 评论 -
c/c++排坑(5) -- c语言中的申明
C语言的申明总是令人头大,对于这块内容也一直让我头疼。希望通过这篇博客能够稍微梳理一下。材料和例子来源于《C专家编程》一、C语言的申明的优先级规则先来个例子,看看下面这行C代码到底是个啥玩意儿:char * const *(*next)();1.1 优先级规则A 申明从它的名字开始读取,然后按照优先级顺序依次读取。B 优先级从高到低依次是:B.1 声明中被括号括起来的那部分...原创 2018-12-16 16:09:12 · 304 阅读 · 0 评论