摘要:这是Java与C++区别的一个比较完整的答案,大家可以学习一下。JAVA和C++都是面向对象语言。也就是说,它们都能够实现面向对象思想(封装,继乘,多态)。而由于c++为了照顾大量的C语言使用者,而兼容了C,使得自身仅仅成为了带类的C语言,多多少少影响了其面向对象的彻底性!JAVA则是完全的面向对象语言,它句法更清晰,规模更小,更易学。它是在对多种程序设计语言进行了深入细致研究的基础上,据弃了其他语言的不足之处,从根本上解决了c++的固有缺陷。Java和c++的相似之处多于不同之处,但两种语言问几处主要的不同使得Java更容易学习,并且编程环境更为简单。我在这里不能完全列出不同之处,仅列出比较
阅读全文
摘要:OSI 七层应用层 (处理网络应用)文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 表示层 (数据表示)数据格式化,代码转换,数据加密 没有协议会话层 (主机间通信)解除或建立与别的接点的联系 没有协议传输层 (端到端的连接)提供端对端的接口 TCP,UDP 网络层 (寻址和最短路径)为数据包选择路由 IP,ICMP,RIP,OSPF,BGP,IGMP,IPX 数据链路层 (介质访问(接入))传输有地址的帧以及错误检测功能 SLIP,CSLIP,PPP,ARP,RARP,MTU物理层 (二进制传输)以二进制数据形式在物理媒体上传输数
阅读全文
摘要:记住浮点数在是不精确的。比较浮点数要跟一个范围比较, 范围大小由你所需精度决定。float型与0值最好的比较:if(fabs(x)<0.000001)abs和fabs,abs是整数取绝对值,而fabs是指浮点数取绝对值
阅读全文
摘要:从实现上看,vbtl在构造函数调用后才建立,因而构造函数不可能成为虚函数 从实际含义上看,在调用构造函数时还不能确定对象的真实类型(因为子类会调父类的构造函数);而且构造函数的作用是提供初始化,在对象生命期只执行一次,不是对象的动态行为,也没有太大的必要成为虚函数 析构函数设为虚函数的作用: 解释:在类的继承中,如果有基类指针指向派生类,那么用基类指针delete时,如果不定义成虚函数,派生类中派生的那部分无法析构。造成内存泄漏
阅读全文
摘要:把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域, 限制了它的使用范围。static函数与普通函数作用域不同。仅在本文件。只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件中说明和定义。对于可在当前源文件以外使用的函数,应该在一个头文件中说明,要使用这些函数的源文件要包含这个头文件static全局变量与普通的全局变量有什么区别:static全局变量只初使化一次,防止在其他文件单元中被引用;static局部变量和普通局部变量有什么区别:static局部变量只被初始化一次,下一次依据上一次结果值;st
阅读全文
摘要:template使用socket服务器端编程过程setjump longjump
阅读全文
摘要:1. class 和 struct 的区别2.class 还有什么用class还有个用途是在模版类型声明中作为表示模版类型参数或模版模版参数的语法的必要组成部分。前者也可被typename代替。3. 类的默认函数有哪些?默认构造函数,默认拷贝构造函数,默认赋值操作符,默认虚析构函数,取值操作符.4.内存控制方法,new了而没有delete智能指针5.STL
阅读全文
摘要:写一个函数,完成内存之间的拷贝。[考虑问题是否全面,是否考虑内存重叠问题]返回void *支持链式操作,参数类型是void *以支持任意类型的指针,输入参数加上const修饰,最好加上assert对输入输出指针进行非NULL判断void* memcpy( void *dest, const void *src, size_t count ){char* pdest = static_cast( dest );const char* psrc = static_cast( src );// 依次从前拷贝,目的地址覆盖了源地址的数,此时从后往前拷贝if( (pdest>psrc) &
阅读全文
摘要:C/C++面试经验总结如下,望兄弟姐妹们能得到点什么经验。1、要把c语言的基础打实2、理解c++语言中一些概念以及它们之间的区别(需要深刻理解):(1)局部变量 全局变量 静态变量 const常量 寄存器变量 宏定义的常量 static变量注:包括它们的内存分配区域,作用域,初始化等等(2)理解malloc与new之间的区别,以及free与之间区别(3)内联函数与宏定义的区别,它们各有什么优点(4)内存分配有哪几种形式?分别为何?区别是什么?对编译速度影响是何?(4)理解什么是重载、覆盖、隐藏,区别是何?可否举例?(5)什么是多态?举个例子试试(6)struct 和class有什么区别?c语言
阅读全文
摘要:纯虚函数是一种特殊的虚函数,它的一般格式如下:class {virtual ()=0;…};在许多情况下,在基类中不能对虚函数给出有意义的实现,而把它声明为纯虚函数,它的实现留给该基类的派生类去做。这就是纯虚函数的作用。纯虚函数可以让类先具有一个操作名称,而没有操作内容,让派生类在继承时再去具体地给出定义。凡是含有纯虚函数的类叫做抽象类。这种类不能声明对象,只是作为基类为派生类服务。除非在派生类中完全实现基类中所有的的纯虚函数,否则,派生类也变成了抽象类,不能实例化对象。
阅读全文
摘要:1.#include using namespace std;struct A { int a; //4 long b; //4 char c; //1 // align to 12};void main(){ cout using namespace std;#define SQUARE(a) (a * a)void main(){ int a=3; int b=4; cout using namespace std;struct Node{int data;Node* next;};void main(){ ...
阅读全文
摘要:#includeusing namespace std;class calculator{ public: char token; int exp( void ); int term( void ); int factor( void ); void match( char expectedToken ); void error( void );};int calculator::exp(void){ int temp = term(); /*计算比加减运算优先级别高的部分*/ while ...
阅读全文
摘要:#include #include #include /*****************************************///这个算法开辟了额外的空间。//分析这个问题可以知道,字符串长度len是奇数(0不考虑)//数字的个数是len/2+1,符号的个数为len/2,然后将符号和数字存储起来//第一步处理所有的乘除法,此时有一个特点就是如果几个数//连续进行乘除法的时候就需要向前存储结果(为了方便后面的加减法运算)//算法复杂度O(n)/*****************************************/int calculate(int len,char *
阅读全文
摘要:以二叉链表为存储结构,分别写出求二叉树高度及宽度的算法。所谓宽度是指在二叉树的各层上,具有结点数最多的那一层上的结点总数。标准答案:①求树的高度Int Depth(BinTree *T){int dep1,dep2;if(T==Null) return(0);else{dep1=Depth(T->lchild);dep2=Depth(T->rchild);if(dep1>dep2) return(dep1+1);else return(dep2+1);}②求树的宽度思想:按层遍历二叉树,采用一个队列q,让根结点入队列,最后出队列,若有左右子树,则左右子树根结点入队列,如此反复
阅读全文
摘要:Gray Code,是几十年前贝尔实验室的科学家Frank Gray提出的一种编码方案,当时主要用于传输信号以防止出错。Gray Code 除了在通信,硬件设计领域中应用以外,在计算机相关科学的其他方面也有广泛的应用,例如按序产生集合的所有子集。Gray Code实现按序产生集合的所有子集子集的按序产生,这个概念很简单,举个例子,假设我们的集合为{a,b,c},那么按序产生的子集应该是:空集 (000) —— 0(编号 从0开始按顺序排序)a (100) —— 1ab (110) —— 2abc (111) —— 3acbbcc那么Gray Code是如何产生这样的序列的...
阅读全文
摘要:题目描述输入一个集合,需要生成该集合所能得出的所有组合。举例说明:若输入集合为{1,2} , 需要生成的组合有{1},{1, 2},{2} 。该题目与生成集合的全排列有很多相似之处,同样也是一个很经典的问题。解决思路这里我们利用递归的思想来实现该问题的解。面对这样一个问题,我们需要仔细分析。题目要求生成一个集合的所有组合,也就是需要生成集合里的元素所能够组成的所有组合。于是一个很明显的思路就是要遍历该集合。一提到遍历集合,可以使用循环或者递归来实现。针对本问题,利用递归的思想是很方便的。假设我们的集合为{1,2,3} ,我们从头扫描集合的元素,第一个元素为1。对于这个元素,我们可以把他放到组合
阅读全文
摘要:问题C语言以及C++语言中的const究竟表示什么?其具体的实现机制又是如何实现的呢? 本文将对这两个问题进行一些分析,简单解释const的含义以及实现机制。问题分析简单的说const在C语言中表示只读的变量,而在C++语言中表示常量。关于const在C与C++语言中的使用以及更多的区别,以后有时间另开一贴说明。那么const究竟是如何实现的呢? 对于声明为const的内置类型,例如int,short,long等等,编译器会如何实现const的本意?那么对于非内置类型是否也是与内置数据类型一样处理呢,例如对于结构体类型则会怎样处理呢?下面通过几个小例子来说明这些问题:C语言const示例: .
阅读全文