c/c++
JeremyZJM
这个作者很懒,什么都没留下…
展开
-
c++ 知识点
1. 变量定义位置C中,所有局部变量必须在函数开头定义;C++中只要在使用之前定义好就可以;2.bool类型只有0,1两种情况;能够正确理解char,short ,int ,long ,float ,double等类型的字节数;int a = 5;if(a != 0)if(a == 0)float b = 0.3;if((b>-0.原创 2017-07-06 19:48:53 · 289 阅读 · 0 评论 -
Delete和delete[]的区别
当调用delete的时候,系统会自动调用已分配的对象的析构函数。当我们用new[]分配的对象是基本数据类型时,用delete和delete[]没有区别。但是,当分配的对象是自定义对象时,二者不能通用。一般来说,使用new分配的对象,用delete来释放。用new[]分配的内存用delete[]来逐个释放。c/c++规定,当删除一个指针时,这个指针应指向其首地址。原创 2017-09-14 11:43:53 · 343 阅读 · 0 评论 -
如何定义一个只能在堆上(或栈上)生成对象的类
在C++中,类的对象建立分为两种,一种是静态建立,如A a;另一种是动态建立,如A* ptr=new A;这两种方式是有区别的。 静态建立一个类对象,是由编译器为对象在栈空间中分配内存,是通过直接移动栈顶指针,挪出适当的空间,然后在这片内存空间上调用构造函数形成一个栈对象。使用这种方法,直接调用类的构造函数。 动态建立类对象,是使用new运算符将对象建立原创 2017-09-14 21:59:50 · 322 阅读 · 0 评论 -
几种常见的设计模式介绍
几种常用的设计模式介绍1. 设计模式的起源最早提出“设计模式”概念的是建筑设计大师亚力山大Alexander。在1970年他的《建筑的永恒之道》里描述了投计模式的发现,因为它已经存在了千百年之久,而现代才被通过大量的研究而被发现。在《建筑的永恒之道》里这样描述:模式是一条由三个部分组成的通用规则:它表示了一个特定环境、一类问题和一个解决方案之间的关系。每一个模式描述了转载 2017-09-21 00:35:30 · 655 阅读 · 0 评论 -
在c++程序中调用被c编译器编译后的函数,为什么要加extern "c"?
首先,白塔修饰的目标是“extern”的。也就是告诉编译器,其声明的函数和变量可以在本模块或其他模块中使用。通常,在模块的头文件中对本模块提供给其他模块引用的函数和全局变量以关键字extern声明。其次,被它修饰的目标是“c”,意思是其修饰的变量和函数是按照c语言方式编译和连接的。我们来看看c++中对类似c的函数是怎样编译的。作为一种面向对象的语言,c++支持重载,而过程式语言c则不支持。函数原创 2017-08-02 17:29:02 · 3018 阅读 · 0 评论 -
MySQL命令语句整理
1. 登录>mysql -uroot -p123456 密码登录MySQL2.查看当前有哪些数据库》mysql>show databases;3.登录mysql -hlocalhost -P3306 -uroot -p123456 主机名 端口 用户名 密码4. 退出 \q5. 显示所有原创 2017-08-07 10:03:33 · 410 阅读 · 0 评论 -
C++中那些运算符不能重载
C++中不能重载的运算符:“?:”、“.”、“::”、“sizeof”和”.*”原创 2017-10-09 17:13:20 · 1589 阅读 · 0 评论 -
高性能IO模型浅析
高性能IO模型浅析 服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种:(1)同步阻塞IO(Blocking IO):即传统的IO模型。(2)同步非阻塞IO(Non-blocking IO):默认创建的socket都是阻塞的,非阻塞IO要求socket被设置为NONBLOCK。注意这里所说的NIO并非Java的NIO(New IO)库。(转载 2017-09-29 15:16:43 · 272 阅读 · 0 评论 -
栈和堆的区别
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两回事,分配方式倒是类原创 2017-09-11 20:15:26 · 266 阅读 · 0 评论 -
虚函数和纯虚函数有什么区别
(1)类里如果声明了虚函数,这个函数是实现的,哪怕是空实现,它的作用就是为了能让这个函数在它的子类里面可以被覆盖,这样编译器就可以使用后期绑定来达到多态了。纯虚函数只是一个接口,是个函数的声明而已,它要留到子类里去实现。(2)虚函数在子类里面也可以不重载;但纯虚函数必须在子类去实现,这就像Java的接口一样。通常把很多函数加上virtual,是一个好习惯,虽然牺牲了一些性能,但是增加了面向对象原创 2017-09-11 17:03:15 · 776 阅读 · 0 评论 -
多继承中的构造函数的顺序
(1)任何虚拟基类的构造函数按照它们被继承的顺序构造。(2)任何非虚拟基类的构造函数按照它们被构造的顺序构造。(3)任何成员对象的构造按照它们声明的顺序调用。(4)类自身的构造函数。原创 2017-09-14 21:49:48 · 777 阅读 · 0 评论 -
C++中的重载、覆盖和隐藏的区别
1.重载是一个类内部实现相同机理的操作,但是操作的对象不同。主要体现在: 方法在同一个类中重载的方法名称相同参数不同(参数的类型不同,参数的个数不同)virtual关键字可有可原创 2017-09-14 21:01:30 · 261 阅读 · 0 评论 -
c/c++易错知识点3(引用和指针)(二)
1.内存访问违规#include using namespace std;int main(){ char a; char *str1=&a; char*str2="AAA"; strcpy(str1,"hello"); cout<<str1<<endl; str2[0]='B'; cou原创 2017-08-26 10:37:26 · 410 阅读 · 0 评论 -
c/c++易错知识点整理3(引用和指针)(一)
1.一般变量引用#include #include using namespace std;int main(){ int a=10; int b=20; int &rn=a; int equal; rn=b; rn=100 equal=(&a==&rn)?1:0;} a=10;b=20;原创 2017-08-11 19:51:20 · 364 阅读 · 0 评论 -
Lunix平台下c/c++内存泄漏与内存溢出的解决方法
内存泄露专题(Memory Leak) 以下转自IBM 韩 兆兵 (hanzb@cn.ibm.com), 软件工程师, IBM刘 盈 (cdlliuy@cn.ibm.com), 软件工程师, IBM强 晟 (qiangsh@cn.ibm.com), 软件工程师, IBM 由于 C 和 C++ 程序中完全由程序员自主申请和释放内转载 2017-08-12 10:19:01 · 1059 阅读 · 0 评论 -
c/c++易错知识点整理2(预处理,const,static,sizeof)(下)
1.使用sizeof计算普通变量所占空间大小原创 2017-08-10 21:26:41 · 279 阅读 · 0 评论 -
c/c++易错知识点整理1(c/c++程序基础)
一、c/c++程序基础1.在main函数里局部变量引用优先,c++中可以通过域操作符“::”来直接操作全局变量;2.i=8; printf("%d",-i++); 先打印-i的值,在i++ ,打印-8,而i此时i=9;3.在内建数据类型的情况,i++和++i效率没有区别;4.良好的条件比较语句:(1)bool flag;if(flag);原创 2017-08-04 10:54:05 · 604 阅读 · 0 评论 -
c/c++易错知识点整理2(预处理,const,static,sizeof)(上)
预处理、const、static与sizeof1.在#define宏中需要把参数小心地用括号括起来。因为宏只是简单的文本替换,如果不注意,很容易引起歧义。 #define SQR(x) (x*x)int a,b=3;a=SQR(b+2); //a=b+2*b+2输出a=11。2.宏参数#define STR(s) #s#define C原创 2017-08-07 11:02:10 · 425 阅读 · 0 评论