C++
rocksword
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
What's the difference between a stack and a heap
The differences between the stack and the heap can be confusing for many people. So, we thought we would have a list of questions and answers about stacks and heaps that we thought would be very helpf转载 2015-01-14 16:55:34 · 360 阅读 · 0 评论 -
面向对象的三个基本特征
面向对象的三个基本特征是:封装、继承、多态。封装封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。继承面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。通过转载 2013-08-11 21:55:46 · 183 阅读 · 0 评论 -
如何判断单链表中是否存在环
有一个单链表,其中可能有一个环,也就是某个节点的next指向的是链表中在它之前的节点,这样在链表的尾部形成一环。现在需要解决的问题有以下两个:如何判断一个链表是不是这类链表?如果链表为存在环,如何找到环的入口点?判断链表是否存在环,办法为:设置两个指针(fast, slow),初始值都指向头,slow每次前进一步,fast每次前进二步,如果链表存在环,则fast必定先进入环,而slow后进入环,两转载 2013-08-11 21:55:41 · 236 阅读 · 0 评论 -
Solaris环境编译ACE+TAO
1,download the latest version software ACE 5.7, TAO 1.7,http://download.dre.vanderbilt.edu/2,create file svc_acetao.shPATH=$PATH:/opt/SUNWspro/bin:/usr/sfw/bin;export PATHACE_ROOT=/opt/ACE_wrappers;ex原创 2013-08-11 21:55:32 · 421 阅读 · 0 评论 -
Source Insight设置
1、背景色选择 要改变背景色Options->preference->windows background->color设置背景色2、解决字符等宽对齐问题。 SIS默认字体是VERDANA,很漂亮。这网页上应该也是用的VERDANA字体。但由于美观的缘故,VERDANA字体是不等宽的。比如下面两行 llllllllll转载 2013-08-11 21:55:39 · 291 阅读 · 0 评论 -
source insight设置头文件
source insight 工程中只有本工程的c文件和头文件,当include 本工程之外的头文件的时候就无法轻松查看(按住Ctrl,鼠标单击程序中的这个头文件名)这个头文件的内容了。这些头文件一般都是在某编译器安装目录下,并且使用频繁,如果不能像本工程的文件查看那样方便就不太爽了。怎么解决呢?鼓捣半天后得到这个办法:source insight有一个BASE工程,这个工程是一个全局转载 2013-08-11 21:55:37 · 431 阅读 · 0 评论 -
以C99的眼光重温C语言
在开始以前请先阅读以下条款: 1.这里不要将C和C++混为一谈了,这两个语言的制定都有自己独立的标准委员会。 2.并不是所有的编译器都支持C99,试验所使用的gcc也不是完全支持C99。 3.不要以讹传讹,想要知道结果,与其将信将疑的听别人讲,不如自己动手试下。 4.代码中的一些细节之处不要忽略。 5.本文所有内容都经过了仔细揣摩实践转载 2013-08-11 21:55:34 · 343 阅读 · 0 评论 -
C++成员初始化列表
C++初始化类的成员,不仅可以用constructor完成,也可以用初始化类成员列表来完成。有些情况只能用第一种,而且通常第一种效率高些。两者区别:1,普通变量编译器会默认替你初始化。它们既能初始化,也能被赋值,而常量const按照其意思只能被初始化,不能赋值。所有const member只能用成员初始化列表来完成初始化,不能在构造函数内为它们赋值。2,类对象初始化是调用它的构造函数完转载 2013-08-11 21:55:17 · 288 阅读 · 0 评论 -
简明批处理教程
1楼 简明批处理教程ChinaLad 发表于 2005-7-28 13:32:00 最近对于批处理技术的探讨比较热,也有不少好的批处理程序发布,但是如果没有一定的相关知识恐怕不容易看懂和理解这些批处理文件,也就更谈不上自己动手编写了,古语云:"授人以鱼,不如授人以渔。"因为网上好像并没有一个比较完整的教材,所以抽一点时间写了这片转载 2013-08-11 21:55:15 · 358 阅读 · 0 评论 -
C++
试题一:3.程序输出char str1[] = "abc";char str2[] = "abc";const char str3[] = "abc";const char str4[] = "abc";const char *str5 = "abc";const char *str6 = "abc";char *str7 = "abc";char *str8 = "abc";cout cout转载 2013-08-11 21:55:12 · 404 阅读 · 0 评论 -
C/C++中如何获取数组的长度
C、C++中没有提供直接获取数组长度的函数,对于存放字符串的字符数组提供了一个strlen函数获取长度,那么对于其他类型的数组如何获取他们的长度呢?其中一种方法是使用sizeof(array) / sizeof(array[0]), 在C语言中习惯上在 使用时都把它定义成一个宏,比如#define GET_ARRAY_LEN(array,len) {len = (sizeof(array) /转载 2013-08-11 21:55:10 · 319 阅读 · 0 评论 -
C C++
1.new、delete、malloc、free关系delete会调用对象的析构函数,和new对应free只会释放内存,new调用构造函数。malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动转载 2013-08-11 21:56:06 · 375 阅读 · 0 评论 -
C++汇总
①链表反转单向链表的反转是一个经常被问到的一个面试题,也是一个非常基础的问题。比如一个链表是这样的: 1->2->3->4->5 通过反转后成为5->4->3->2->1。最容易想到的方法遍历一遍链表,利用一个辅助指针,存储遍历过程中当前指针指向的下一个元素,然后将当前节点元素的指针反转后,利用已经存储的指针往后面继续遍历。源代码如下:struct linka {int data;linka* n转载 2013-08-11 21:55:59 · 342 阅读 · 0 评论 -
关于C++中的类型转换
1、static_cast Operator MSDN: The expression static_cast ( expression ) converts expression to the type of type-id based solely on the types present in the expression. No run-time type check is made t转载 2013-08-11 21:56:13 · 307 阅读 · 0 评论 -
What’s the difference between a stack and a heap
The differences between the stack and the heap can be confusing for many people. So, we thought we would have a list of questions and answers about stacks and heaps that we thought would be very helpf转载 2015-01-14 17:07:37 · 299 阅读 · 0 评论 -
Postgres ERROR: database “dev” is being accessed by other users
If you are having issues dropping a postgres database the issue is more than likely that a user is accessing the database you are attempting to drop. There isn’t technically a way to force drop the po转载 2014-03-13 20:26:30 · 1341 阅读 · 0 评论 -
C++ scoped static initialization is not thread-safe, on purpose
The rule for static variables at block scope (as opposed to static variables with global scope) is that they are initialized the first time execution reaches their declaration.Find the race condit转载 2013-12-19 14:49:08 · 581 阅读 · 0 评论 -
数组与字符串长度sizeof()、strlen()、string的length()和size()
一、 数组或字符串的长度1、sizeof()---求所占的字节数(1)、对于整型字符型数组int A[]={1,4,5,2,8,6,0};//求整型数组A所占的字节数int i=sizeof(A); //i表示整型数组A所占的总空间的字节数couti=sizeof(A)/sizeof(int); //此时i表示数字数组的转载 2013-12-17 22:18:06 · 761 阅读 · 0 评论 -
The C++ 'const' Declaration: Why & How
The 'const' system is one of the really messy features of C++.It is simple in concept: variables declared with ‘const’ added become constants and cannot be altered by the program. However it is al转载 2013-11-29 11:10:35 · 323 阅读 · 0 评论 -
C++编程杂谈之四:漫谈UML
UML对很多人来说应该不是一个陌生的概念,这一两年来,UML被大家越来越多的讨论着。本来UML跟我这个主题似乎并不能扯上多大的关系(它是语言无关的,甚至可以说其本身就是一种语言——用于交流的)。我在此谈到它有两个目的:1. UML是针对面向对象软件开发的,而C++正是这样的一种语言2. UML在设计中被越来越多的使用着,而下一篇杂谈准备讨论设计模式,如果不了解UML,那么无法进行下去UML,全称:转载 2013-08-11 21:55:43 · 257 阅读 · 0 评论 -
排序
1、插入排序void runsub5(){ int array[10] = {7,6,3,2,0,5,4,9,1,8}; int result[10] = {}; int i,j; for (i=0;i { cout } cout for (i=1;i { if(array[i] {转载 2013-08-11 21:56:02 · 270 阅读 · 0 评论 -
深入探讨C++中的引用
摘要:介绍C++引用的基本概念,通过详细的应用分析与说明,对引用进行全面透彻地阐述。 关键词:引用,const,多态,指针 引用是C++引入的新语言特性,是C++常用的一个重要内容之一,正确、灵活地使用引用,可以使程序简洁、高效。我在工作中发现,许多人使用它仅仅是想当然,在某些微妙的场合,很容易出错,究其原由,大多因为没有搞清本源。故在本篇中我将对引用进行详细讨论,希望对大家更好地理解和使用引转载 2013-08-11 21:56:11 · 270 阅读 · 0 评论 -
source insight 解决自动缩进 和 TAB键=4个SPACE
转自:http://blog.youkuaiyun.com/yjzl1911/archive/2010/06/13/5669037.aspx1. SMART TAB的用法. 解决自动缩进. 新开一个PROJECT后,点Options->Document Options,弹出对话框后先在左上角选好要用的Document Type,主要就是设C Source File和C++ Source File转载 2013-08-11 21:55:08 · 317 阅读 · 0 评论 -
C内存问题
1,void getMemory(char *p, int num){ p=(char *)malloc(sizeof(char)*num);}void test(void){ char *str=NULL; getMemory(str,100);//str仍然为NULL strcpy(str,"hello");//运行错误}分析:指针p的副本_p被重新分配内存,并且p未被free,造成内转载 2013-08-11 21:56:08 · 310 阅读 · 0 评论 -
Source Insight 配置和快捷键
Source Insight实质上是一个支持多种开发语言(java,c ,c 等等)的编辑器,只不过由于其查找、定位、彩色显示等功能的强大,常被我们当成源代码阅读工具使用。作为一个开放源代码的操作系统,Linux附带的源代码库使得广大爱好者有了一个广泛学习、深入钻研的机会,特别是Linux内核的组织极为复杂,同时,又不能像windows平台的程序一样,可以使用集成开发环境通过察看变量和函数转载 2013-08-11 21:55:06 · 359 阅读 · 0 评论 -
C语言中变量名的命名规则
1、严格采用阶梯层次组织程序代码: 各层次缩进的分格采用VC的缺省风格,即每层次缩进为4格,括号位于下一行。要求相匹配的大括号在同一列,对继行则要求再缩进4格。例如: 2、提示信息字符串的位置 在程序中需要给出的提示字符串,为了支持多种语言的开发,除了一些给调试用的临时信息外,其他所有的提示信息必须定义在资源中。 3、对变量的转载 2013-08-20 13:28:42 · 5144 阅读 · 1 评论 -
C++重载函数和缺省参数
1,定义函数重载的必要性?a,比如打印3个不同类型的数据:不得不用三个不同的函数,如print_int(),print_char(),print_float(),增加编程工作量。b,构造函数名字预先由类的名字确定,所以只能有一个构造函数名。不带参数构造函数和有参构造函数不能同时存在。函数重载的本质就是允许函数同名。为什么不能用返回值重载?调用函数时,通常会忽略它的返回值。此时无原创 2010-04-09 23:00:00 · 1789 阅读 · 0 评论 -
C++面试题
1,找错题1)void test1(){ char string[10]; char* str1 = "0123456789"; strcpy( string, str1 );} 2)void test2(){ char string[10], str1[10]; int i; for(i=0; i { str1[i] = a; } strcpy( string, str1转载 2010-04-05 22:32:00 · 284 阅读 · 0 评论 -
C++内存问题
1,void getMemory(char *p, int num){ p=(char *)malloc(sizeof(char)*num);}void test(void){ char *str=NULL; getMemory(str,100);//str仍然为NULL strcpy(str,"hello");//运行错误} 指针p的副本_p被重新分配内存,并且p未被fr原创 2010-04-05 16:01:00 · 414 阅读 · 1 评论 -
构造函数不能为虚函数,析构函数可以为虚函数
构造函数不能声明为虚函数。解释一:所谓虚函数就是多态情况下只执行一个,而从继承的概念来讲,总是要先构造父类对象,然后才能是子类对象,如果构造函数设为虚函数,那么当你在构造父类的构造函数时就不得不显示的调用构造,还有一个原因就是为了防错,试想如果你在子类中一不小心重写了个跟父类构造函数一样的函数,那么你的父类的构造函数将被覆盖,也即不能完成父类的构造,就会出错。解释二:虚函数的主要意义在于被派生转载 2010-04-05 21:35:00 · 448 阅读 · 0 评论 -
C++成员初始化列表Member initialization list
C++初始化类的成员,不仅可以用constructor完成,也可以用初始化类成员列表来完成。有些情况只能用第一种,而且通常第一种效率高些。两者区别:1,普通变量编译器会默认替你初始化。它们既能初始化,也能被赋值,而常量const按照其意思只能被初始化,不能赋值。所有const member只能用成员初始化列表来完成初始化,不能在构造函数内为它们赋值。2,类对象初始化是调用它的构造函数完转载 2010-04-03 15:48:00 · 1058 阅读 · 0 评论 -
C++中的临时对象
在C++的创建对象是一个费时,费空间的一个操作。有些固然是必不可少,但还有一些对象却在我们不知道的情况下被创建了。通常以下三种情况会产生临时对象:1,以值的方式给函数传参;2,类型转换;3,函数需要返回一个对象时;现在我们依次看这三种情况:一,以值的方式给函数传参 我们知道给函数传参有两种方式。1,按值传递;2,按引用传递。按值传递时,首先将需要传给函数的参数,调用拷贝构转载 2010-04-05 21:56:00 · 257 阅读 · 0 评论 -
C C++面试题
ESP,Embeded Systems Programming C语言预处理器Preprocessor1,预处理指令声明一个常量#define SECONDS_PER_YEARS (60*60*24*365)UL2,写一个标准宏MIN,输入2个参数返回最小值#define MIN ((A)3,死循环Infinite loopswhile(1){}或者Loop:转载 2010-04-02 19:45:00 · 388 阅读 · 0 评论 -
C++运算符重载
1,重载运算符参数和返回值选择的规则a,对任何函数参数,如仅需要从参数中读取而不改变它,缺省按const引用传递它。b,选择的返回值取决于运算符所期望的类型。如果运算符效果是产生一个新值,需要产生一个作为返回值的新对象。c,所有赋值运算符改变左值。为支持链式表达式,如(A=B).foo(),所有赋值运算符的返回值对于左值应该是nonconst引用。d,逻辑运算符,至少得到一个int原创 2010-04-14 20:13:00 · 546 阅读 · 0 评论 -
C++多态技术
多态(polymorphism)是一种将不同的特殊行为和单个泛化记号相关联的能力。C++中多态有着更广泛的含义。函数多态overload poly即函数重载funtion overload宏多态macro poly动态多态dynamic poly现在面向对象语言对这个概念的定义是一致的。技术基础是继承机制和虚函数。强大之处在于处理异质对象集合的能力。静态多态转载 2010-04-01 21:21:00 · 357 阅读 · 0 评论 -
C++引用和拷贝构造函数
1,C++中的指针C++是一种类型要求更强的语言,不允许随便把一个类型的指针指派给另一个类型。2,C++中的引用引用,就像自动被编译器逆向引用的常量型指针。使用引用的规则:a,必须初始化b,一旦一个引用被初始化为指向一个对象,就不能被改变为对另一个对象的引用。c,不可能有NULL引用。必须确保引用和一块合法的存储单元关联。3,函数中的引用函数参数中使用常量引用特别重原创 2010-04-12 21:47:00 · 564 阅读 · 0 评论 -
C++输入输出流
与标准C输入输出库的各种各样函数相比,输入输出流更容易、安全、有效。printf解释程序的不足:a,直到运行期间才对格式串求值,并且没有编译时错误检查。b,被设计用力处理char/int/float/double四种基本数据类型。每增加一个新类时,都要重载printf和scanf函数,扩展性差。 面向行的输入get和getlineget遇到输入流的分隔符时就停止,不从输原创 2010-04-09 23:42:00 · 335 阅读 · 0 评论 -
C++ const
const最初动机是取代预处理器#defines进行值替代。1,值替代为所有的内部数据类型以及由它们所定义的变量使用限定符const2,头文件里的constconst默认为内部连接。当定义一个常量时,必须赋一个值给它。C++编译器通常并不为const分配存储空间,相反它把这个定义保存在符号表里,当const被使用时,在编译器会进行常量折叠。3,const的安全性const原创 2010-04-10 22:02:00 · 836 阅读 · 1 评论 -
C++动态对象创建
1,C++如何保证正确的初始化和清理并允许在堆上动态创建对象?使动态对象创建成为语言的核心。malloc和free是库函数,不在编译器控制范围之内。要有一个能完成动态内存分配及初始化工作的运算符和另一个能完成清理及释放内存工作的运算符,编译器就可以保证所有对象的构造函数和析构函数都会被调用。2,当一个C++对象被创建时,有2件事情发生:a)为对象分配内存。b)调用构造函数来初始化那个内存。原创 2010-05-05 22:00:00 · 2107 阅读 · 0 评论 -
链表
#include #include "sub5.hpp"using namespace std;struct Node{ int data; Node* next; Node(const int& d=int()):data(d),next(NULL){}};class Chain{private: Node* head; int length;public:转载 2013-08-11 21:56:04 · 365 阅读 · 0 评论
分享