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++中我们在定义或声明一个函数的时候,有时会...
c++, 区别阅读全文
2019-07-21 06:06
⁄ 工业·编程
⁄ 共 2383字
在学习了C语言和C++之后,这两者之间的区别我们需要仔细的捋一捋!
一、面向过程语言和面向对象语言
我们都知道C语言是面向过程语言,而C++是面向对象语言,说C和C++的区别,也就是在比较面向过程和面向对象的区别。
1.面向过程和面向对象的区别
(1)面向过程:面向过程编程就是分析出解决问题的步骤,然后把这些步骤一步一步的实现,使用的时候一个一个的依次调用就可以了。
(2)面向对象:面向对象编程就是把问题分解成各个...
c++, 区别阅读全文
2019-06-09 14:33
⁄ 工业·编程
⁄ 共 1191字
这两天尝试将一个用C++实现的项目改用C语言实现。
原本估计工作量并不大,因为在不少人看来,C++只是加了语法糖的C语言而已。
这次尝试并没有重写一点点与业务功能相关的代码,仅仅只是想把原本用C++实现的项目,稍加改写通过C的编译器。实际证明,如果不加这块语法糖,有些实现工作要苦得多。将用c写出来的代码交给C++编译器,要改动的地方有一些,但是真的很少,但将用C++写出来的代码交给C编译器,要改动的地方就不是一点点...
c++, 思考阅读全文
2019-05-26 06:46
⁄ 工业·编程
⁄ 共 2444字
Overload 重载
在C++程序中,可以将语义、功能相似的几个函数用同一个名字表示,但参数不同(包括类型、顺序不同),即函数重载。
(1)相同的范围(在同一个类中);
(2)函数名字相同;
(3)参数不同;
请注意,重载解析中不考虑返回类型,而且在不同的作用域里声明的函数也不算是重载。重载可以理解为一个类内部的函数重载,较好理解,此处不举例。
Override 覆盖
是指派生类函数覆盖基类函数,特...
c++阅读全文
2019-05-24 06:31
⁄ 工业·编程
⁄ 共 753字
内联函数是指在调用衣柜函数时,不把他当作调用而处理,而是把这个函数的代码直接在调用他的函数里展开的形式,也可以理解为内联函数就相当于一段代码。不需要调用,效率就高些。成员函数是类中声明的函数,属于类。当然如果在类中定义的成员函数自动变为内联函数。
成员函数是属于对象的, 静态函数才是属于类的. 如果在类体内定义的函数,则会被编译器默认为内联函数, 如果把函数的定义放在外面,且在函数的声明的时候加上关键字...
c++阅读全文
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 = &...
c++阅读全文
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...
c++阅读全文
2019-05-15 22:10
⁄ 工业·编程
⁄ 共 734字
共同点
(1.)都和数组相似,都可以使用标准数组的表示方法来访问每个元素(array和vector都对下标运算符[ ]进行了重载)
(2.)三者的存储都是连续的,可以进行随机访问
不同点
(0.)数组是不安全的,array和vector是比较安全的(有效的避免越界等问题)
(1.)array对象和数组存储在相同的内存区域(栈)中,vector对象存储在自由存储区(堆)
(2.)array可以将一个对象赋值给另一个array对象,但是数组不行
(3.)vector属...
c++阅读全文
2019-01-07 21:40
⁄ 工业·编程
⁄ 共 1888字
一、宏定义中 “#”知识点
#的作用是将“#”后面的宏参数进行字符串转换操作,也就是将#后面的参数 两边加上一对双引号,使其成为字符串。
这里面有几个知识点:
1、直接转换字符串,不展开。
这句话的意思是,带参数宏定义也是宏,而不是普通函数,所以要保留宏的基本特性,也就是全部替换,而不展开。示例代码:
#include <stdio.h>
#include <stdlib.h>
#define CONVERT(a) #a
int main(int argc, char *argv...
c++阅读全文
2018-12-27 20:10
⁄ 工业·编程
⁄ 共 1217字
一、sizeof
sizeof(...)是运算符,而不是一个函数。
sizeof操作符的结果类型是size_t,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。
它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。
由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。
实际上,用size...
c++, 区别阅读全文