现在位置: 首页 > c++
2019-07-22 06:09 工业·编程 ⁄ 共 5707字 暂无评论
c语言虽说经常和c++在一起被大家提起,但可千万不要以为它们是一个东西。现在我们常用的C语言是C89标准,C++是C++99标准的。C89就是在1989年制定的标准,如今最新的是C11和C++11标准。根据不同的标准,它们的功能也会有所不同,但是越新的版本支持的编译器越少,所以本文在讨论的时候使用的C语言标准是C89,C++标准是C++99.我们来介绍C语言和C++中那些不同的地方。 1.函数默认值 在C++中我们在定义或声明一个函数的时候,有时会...
阅读全文
2019-07-21 06:06 工业·编程 ⁄ 共 2383字 暂无评论
在学习了C语言和C++之后,这两者之间的区别我们需要仔细的捋一捋! 一、面向过程语言和面向对象语言 我们都知道C语言是面向过程语言,而C++是面向对象语言,说C和C++的区别,也就是在比较面向过程和面向对象的区别。 1.面向过程和面向对象的区别 (1)面向过程:面向过程编程就是分析出解决问题的步骤,然后把这些步骤一步一步的实现,使用的时候一个一个的依次调用就可以了。 (2)面向对象:面向对象编程就是把问题分解成各个...
阅读全文
2019-06-09 14:33 工业·编程 ⁄ 共 1191字 暂无评论
这两天尝试将一个用C++实现的项目改用C语言实现。 原本估计工作量并不大,因为在不少人看来,C++只是加了语法糖的C语言而已。 这次尝试并没有重写一点点与业务功能相关的代码,仅仅只是想把原本用C++实现的项目,稍加改写通过C的编译器。实际证明,如果不加这块语法糖,有些实现工作要苦得多。将用c写出来的代码交给C++编译器,要改动的地方有一些,但是真的很少,但将用C++写出来的代码交给C编译器,要改动的地方就不是一点点...
阅读全文
Overload  重载 在C++程序中,可以将语义、功能相似的几个函数用同一个名字表示,但参数不同(包括类型、顺序不同),即函数重载。 (1)相同的范围(在同一个类中); (2)函数名字相同; (3)参数不同; 请注意,重载解析中不考虑返回类型,而且在不同的作用域里声明的函数也不算是重载。重载可以理解为一个类内部的函数重载,较好理解,此处不举例。 Override    覆盖 是指派生类函数覆盖基类函数,特...
阅读全文
2019-05-24 06:31 工业·编程 ⁄ 共 753字 暂无评论
内联函数是指在调用衣柜函数时,不把他当作调用而处理,而是把这个函数的代码直接在调用他的函数里展开的形式,也可以理解为内联函数就相当于一段代码。不需要调用,效率就高些。成员函数是类中声明的函数,属于类。当然如果在类中定义的成员函数自动变为内联函数。 成员函数是属于对象的, 静态函数才是属于类的. 如果在类体内定义的函数,则会被编译器默认为内联函数, 如果把函数的定义放在外面,且在函数的声明的时候加上关键字...
阅读全文
2019-05-22 06:13 工业·编程 ⁄ 共 1718字 暂无评论
强制类型转换在有些地方起到了很大的作用,在看C++中的强制类型转换时,我们首先看一下我们熟悉的C语言中的强制类型转换。 一.C语言的强制类型转换 C语言中强制类型转换分为两种: 隐式类型转换(相似类型转换,及相关类型的转换,这里和类型提升也优点相似) 显示类型转换(不相关类型之间的转换,比如指针和整型) int main() { int i = 1; double b = i;//隐式类型转换 printf("%d,%2fd\n", i, b); int* p = &...
阅读全文
2019-05-20 05:51 工业·编程 ⁄ 共 898字 暂无评论
一.const修饰成员函数的格式 在成员函数的后边加上const     void display() const { swap(5); cout << "display()" << endl; } 二.const修饰成员函数的原理 2.1.原理 const修饰成员函数时是修饰成员函数的this指针所指向的对象,也就是保证在调用这个const成员函数的对象时不会被改变。 注意:const是修饰this指针所指向的对象 2.2.编译器对const成员函数的处理(图解) 三.问题 3.1. con...
阅读全文
共同点 (1.)都和数组相似,都可以使用标准数组的表示方法来访问每个元素(array和vector都对下标运算符[ ]进行了重载) (2.)三者的存储都是连续的,可以进行随机访问 不同点 (0.)数组是不安全的,array和vector是比较安全的(有效的避免越界等问题) (1.)array对象和数组存储在相同的内存区域(栈)中,vector对象存储在自由存储区(堆) (2.)array可以将一个对象赋值给另一个array对象,但是数组不行 (3.)vector属...
阅读全文
一、宏定义中 “#”知识点   #的作用是将“#”后面的宏参数进行字符串转换操作,也就是将#后面的参数 两边加上一对双引号,使其成为字符串。 这里面有几个知识点: 1、直接转换字符串,不展开。 这句话的意思是,带参数宏定义也是宏,而不是普通函数,所以要保留宏的基本特性,也就是全部替换,而不展开。示例代码: #include <stdio.h> #include <stdlib.h> #define CONVERT(a) #a int main(int argc, char *argv...
阅读全文
2018-12-27 20:10 工业·编程 ⁄ 共 1217字 暂无评论
一、sizeof     sizeof(...)是运算符,而不是一个函数。     sizeof操作符的结果类型是size_t,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。     它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。 由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。     实际上,用size...
阅读全文