
C++的坑
文章平均质量分 65
因为基础内容大家可以看书并尝试,还是很容易的。这里主要是把自己在使用C++过程中,遇到的一些坑写一下。让自己的C++代码能够写的更漂亮,并且更稳定。
Alps1992
我希望自己变得更优秀。
展开
-
C++学习 - 模板函数变长参数
为什么需要变长参数C变长参数1 文档2 C变长参数例子C模板函数以下所说编译环境为:Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1Apple LLVM version 7.3.原创 2016-07-28 14:37:17 · 2805 阅读 · 0 评论 -
C++ - 工程中头文件的定义
头文件头文件大家都明白,里面存放了我们需要使用的『工具』,也是我们在使用某个类库的时候,需要include进来的内容。定义头文件定义头文件需要注意以下内容:要防止被重复include在某些情况下只写声明(declare),不写定义(define)首先如何防止重复include呢?其实很简单,就是加上:#ifndef#define SYMBOL#endif例如如下我定义了一个头文件,名字叫做原创 2016-07-24 14:43:18 · 1628 阅读 · 0 评论 -
C/C++学习 - gcc编译过程查看汇编代码
GCCGCC参数举例GCCgcc大家都很熟悉,是个编译器,功能强大,全称是:GUN GCC。平时大家都简单的称为:GCC, 功能强大,能够编译很多的语言。包括:c, c++, java, ada等…GCC参数gcc平时有很多参数,在平时我编译小程序的时候,都直接gcc -o object source.c就可以了。但是有一次我想查看我同样目的但是不同写法的两个代码是执行效率上是否有差别。所以我原创 2015-03-30 00:29:20 · 10940 阅读 · 0 评论 -
C/C++学习 - 基本类型所占字节数
基本类型这里所说的基本类型大致就是下面几种: int unsigned int long int long long short int char float double对于这些类型所占字节数,其实并不是一定的。尤其是int这个类型。在32位编译器下和64位编译器下很可能是不同的。下面是我在64位编译器下运行结果: 各位可以在自己机子下运行查看。//// main.cpp原创 2015-04-02 02:18:03 · 927 阅读 · 0 评论 -
C++学习 - 虚表,虚函数,虚函数表指针学习笔记
虚函数虚函数就是用virtual来修饰的函数。虚函数是实现C++多态的基础。虚表每个类都会为自己类的虚函数创建一个表,来存放类内部的虚函数成员。虚函数表指针每个类在构造函数里面进行虚表和虚表指针的初始化。下面看一段代码://// main.cpp// VirtualTable//// Created by Alps on 15/4/14.// Copyright (c) 2015年原创 2015-04-15 01:49:54 · 7183 阅读 · 0 评论 -
c++学习 - int 和 string 的相互转换
在C++中会碰到int和string类型转换的。string -> int首先我们先看两个函数:atoi这个函数是把char * 转换成int的。应该是属于标准库函数。在想把string 转换成int的时候,需要以下流程:string -> char * -> int如此才可以,例子如下:string a = "1234";int b = atoi(a.c_str());这样打印b的时候,就是12原创 2015-07-01 01:58:48 · 2037 阅读 · 0 评论 -
C++学习 - 数组指针/指针数组
虽然我一直知道它们两个的区别,但是分不清名字应该是叫哪个。 这里区别一下。指针数组( array of pointers )顾名思义:这是个数组,数组里面的元素都是指针。int *arr[10];这个等同于 int *(a[4])因为*的优先级比较低,所以没有括号的时候,是arr和[10]先结合,变成一个数组,然后这个数组的元素是整型指针。初始化这个初始化要按照数组的方式来。for ( int i原创 2015-08-31 11:37:36 · 1070 阅读 · 1 评论 -
C++学习 - 数组参数传递及编程技巧
数组形参形参的长度会引起误解数组实参通过引用来传递数组多维数组的传递传递给函数的数组处理标记结束标准库方法显示传递数组大小在C++中传递数组参数是一件很简单的事情,但是这里面也有一些需要注意的细节,不能忽视,(只能说C++太难了,也太好玩了)。数组形参在这个里面,数组是作为形参传递的,有以下几种:void printArr(int*) {/* ... */}void printArr原创 2015-09-18 22:06:39 · 2006 阅读 · 0 评论 -
C++学习 - 泛型编程基础
C++作为兼容C语言却又更强大的语言来说,C++真正强大且区别于C的地方就是泛型编程了。在C++中,模板是泛型编程的基础,模板是创建类和函数的蓝图。模板定义假设要写一个函数比较两个值,指出第一个值是小于、等于还是大于第二个值。我们可以用函数重载:int compare( const int &a, const int &b){ if(a == b){ return 0;原创 2015-12-31 23:53:28 · 2053 阅读 · 0 评论 -
C++学习 - 操作符重载
最近看< Inside The C++ object model >又开始复习一下操作符重载,顺便记下来。操作符重载正常情况下,我们的操作符都是有固定的意义的,例如:+ - * /操作符,正常情况下都是可以操作数字的运算,但是当我们需要对两个对象进行相加的时候,这个时候就需要重载操作符了,不然编译器不知道两个对象如何进行操作。在C++中字符串是可以直接加法操作的,是因为在String类里已经重载了原创 2016-01-03 23:56:40 · 732 阅读 · 0 评论