- 博客(47)
- 收藏
- 关注
转载 函数重载与重复声明
一个函数在一个特定的域中被多次声明时,编译器解析第二个及后面函数依照下面步骤:1.参数个数或类型不同,则认为是重载 // 重载函数 void print( const string & ); void print( vector & );2.函数返回类型和参数表完全相同,则认为第二个函数是第一个函数的重复声明 参数表的比较过程与参数名无关3.如果两个函数的参数表相同
2012-09-17 19:49:33
3531
转载 程序员面试 ---- struct和class的区别
1.struct 是值类型,class是对象类型2.struct 不能被继承,class可以被继承3.struct 默认的访问权限是public ,而class 默认的访问权限是private .4.struct 不能由程序员申明构造函数,即使是默认(不带参数)的构造函数,同样也不能有析构的处理部分。这是因为struct 的构造函数是由编译器自动生成的。并且struct 的
2012-09-06 20:11:31
790
转载 程序员面试 ---- 函数模板
#includetemplate void func(const int &t){ cout<<t+100<<endl;}templatevoid func(const T &t){ cout<<t<<endl;}int main(){ func(10.3); func(1000); return 0;}程序运行结果:10.3 100
2012-09-06 19:54:27
655
转载 程序员面试 -- 数据库
1、有个表tableQQ,有整型的ID项和字符类型的Nickname项,这两个项都不允许为空 (1)写出建立该表的SQL语句 (2)找出Nickname为QQ的用户,按ID降序排列的SQL语句 (3)写出删除ID为1234用户记录的SQL语句 (4)写出添加ID为5555,Nickname为'1234'的SQL语句 答案: (1) CREATE TABLE tableQ
2012-09-05 15:57:16
657
转载 运算符优先级 计算 a^b << 2
计算 a^b 答案: 运算符优先级: 括号,下标,->和.(成员)最高; 单目的比双目的高; 算术双目的比其他双目的高; 位运算(左移、右移) 高于 关系运算; 关系运算 高于 按位运算(与,或,异或); 按位运算 高
2012-09-05 10:31:27
2414
2
原创 反转单链表
// ConvertList.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include #include using namespace std;struct ListNode{ int Element; ListNode *Next;};typedef L
2012-08-24 10:20:36
395
转载 程序员面试常用编程算法
1. 反转单链表;2. 反转字符串或反转段落中的单词顺序;3. 利用星号输出画一个任意大小的圆;4. 整数转换为字符串,数字型的字符串转换为整数;5. 写一个函数,返回任意整数对应二进制形式中的“1”的个数;6. 写一个函数,输出字符串中字符的所有排序。(比如:abc acb bac bca cab cba)一般来说,可以先不考虑算法的运行时间,都是
2012-08-23 16:34:36
668
转载 部分面试题
试题1:分别给出BOOL,int,float,指针变量 与"零值"比较的 if 语句(假设变量名为var) 解答: BOOL型变量:if(!var) int型变量: if(var==0) float型变量: const float EPSINON = 0.000001; (float: 6位精度 double: 16
2012-08-23 16:21:50
490
转载 extern
为什么标准头文件都有类似以下的结构? #ifndef __INCvxWorksh #define __INCvxWorksh #ifdef __cplusplus extern "C" { #endif /*...*/ #ifdef __cplusplus } #endif #endif /* __INCvxWor
2012-08-23 11:25:45
455
转载 内存操作
对内存操作的考查主要集中在: (1)指针的理解; (2)变量的生存期及作用范围; (3)良好的动态内存申请和释放习惯。 找错题: 试题4: void GetMemory( char *p ) { p = (char *) malloc( 100 ); } void Test( vo
2012-08-23 10:34:19
385
转载 strcpy
一、自己编写一个标准strcpy函数:char*strcpy(char*str_dst,const char*str_org) { assert( (strDest != NULL) && (strSrc != NULL) ); char *address = strDest; while( (*strDest++ = * strSrc
2012-08-23 10:28:53
441
翻译 Stack
//C语言版#include #include using namespace std;const int EmptyToS=-1;const int MinStackSize=5;const int MaxStackSize=30;struct StackRecord{ int Capacity; int TopofStack; char *Array;};typedef
2012-08-22 17:12:09
573
转载 c字符串、string对象、字符串字面值的区别
一、字符串字面值字符串字面值是一串常量字符,字符串字面值常量用双引号括起来的零个或多个字符表示,为兼容C语言,C++中所有的字符串字面值都由编译器自动在末尾添加一个空字符。字符串没有变量名字,自身表示自身"Hello World!" //simple string literal"" //empty string literal"\nCC\toptions\tfile.[c
2012-08-21 10:30:06
5140
转载 VC如何改变编辑框的背景颜色方法
这里介绍的改变文本编辑框的背景颜色的方法不需要对CEdit生成新的类,步骤如下:(1) 新建一个基于对话框的MFC应用程序,程序名称为Test;(2) 在对话框上添加两个文本框,ID分别为IDC_EDIT1和IDC_EDIT2;(3) 在CTestDlg的头文件中添加几个成员变量,如下所示;class CTestDlg : public CDialog{protecte
2012-08-17 15:11:55
10939
翻译 以对象管理资源------auto_ptr shared_ptr
例:假设我们使用一个用来塑模投资行为(例如股票、债券等等)的程序库,其中各式各样的投资类型继承自一个root class Investment::class Investment { ... }; //"投资类型"继承体系中的root class进一步假设,这个程序库系通过一个工厂函数(factory function ) 供应我们某
2012-08-17 10:39:06
982
翻译 若不想使用编译器自动生成的函数,就该明确拒绝
通常如果你不希望class 支持某一特定机能,只要不声明对应函数就是了。但这个策略对copy 构造函数和copy assignment 操作符却不起作用,如果你不声明它们,而某些人尝试调用它们,编译器会为你声明它们。 这把你逼到了一个困境。如果你不声明copy 构造函数或copy assignment 操作符,编译器可能为你产出一份,于是你的class 支持copying 。
2012-08-16 17:35:52
655
转载 如何改变CEdit的字体颜色大小
创建字体函数BOOL CreateFont的参数说明:BOOL CreateFont( int nHeight, int nWidth, int nEscapement, int nOrientation, int nWeight, BYTE bItalic, BYTE bUnderline, BYTE cStrikeOut, BYTE nCharSet, BYTE nOutPrecisi
2012-08-16 17:12:51
3636
翻译 对象使用之前初始化
读取未初始化的值会导致不明确的行为。在某些平台上,仅仅只是读取未初始化的值,就可能让你的程序终止运行。更可能的情况是读入一些"半随机"bits ,污染了正在进行读取动作的那个对象,最终导致不可测知的程序行为,以及许多令人不愉快的调试过程。 永远在使用对前先将它初始化。一、对于无任何成员的内置类型,你必须手工完成此事。例如:int x = 0;
2012-08-16 15:26:04
891
翻译 const
关键字const 多才多艺。你可以用它在classes 外部修饰global 或namespace作用域中的常量,或修饰文件、函数、或区块作用域(block scope) 中被声明为static 的对象。你也可以用它修饰classes 内部的static 和non-static 成员变量。面对指针,你也可以指出指针自身、指针所指物,或两者都(或都不〉是const:char greeting
2012-08-16 10:28:44
846
转载 explicit
class B (public:explicit B(int x = 0, bool b = true);};class C {public:explicit C (int x);};上述的classes B 和C 的构造函数都被声明为explic址,这可阻止它们被用来执行隐式类型转换(implicit type conversions) ,但它们仍可被用来进行显式
2012-08-14 15:25:03
373
转载 拷贝构造函数 赋值构造函数
copy构造函数被用来"以同型对象初始化自我对象", copyassignment 操作符被用来"从另一个同型对象中拷贝其值到自我对象" :class Widget {public:Widget(); //default构造函数Widget(const
2012-08-14 15:12:08
410
翻译 LinkedList
struct Node;typedef struct Node *PtrToNode;typedef PtrToNode List;typedef PtrToNode Position;List MakeEmpty(List L);int IsEmpty(List L);int IsLast(Position P,List L);Position Find(ELEMENT_TYPE
2012-08-09 19:17:51
456
原创 一些CEdit使用方法
1、如何让编辑框只能输入数字?VS2005以上,只要将EditControl的Number属性设为TRUE即可。2、CEdit控件如果没有选定多行和wantreturn属性时,按下enter键会调用OnOk()函数,对话框则会消失~ 要使按下enter键对话框不消失,这需要重载OnOk()函数,屏蔽掉里面的CDialog::OnOK()即可。
2012-08-04 10:46:26
919
转载 排序 : 3 选择排序
3 选择排序a 直接选择排序//选择排序 for(int i=0;i int min=i; for(int j=i+1;j if(ints[j] min=j; } } int temp;//把最小的元素交换到相应位置 temp=ints; ints=ints[min]; ints[min]=t
2012-07-27 17:18:39
702
转载 排序 : 2 插入排序
2 插入排序a直接插入排序直接插入排序(Straight Insertion Sorting)的基本思想是:把n个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含有n-1个元素,排序过程 中每次从无序表中取出第一个元素,将它插入到有序表中的适当位置,使之成为新的有序表,重复n-1次可完成排序过程。把a[i]插入到a[0],a[1],...,a
2012-07-27 17:08:50
628
转载 排序 : 1 交换排序
1 交换排序a 冒泡排序-----稳定标准的冒泡排序:ints是一个整型数组for(int i=0;i for(int j=0;j if(ints[j] int temp; temp=ints[j+1]; ints[j+1]=ints[j];
2012-07-27 16:48:59
510
转载 堆 栈 区别
堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态
2012-07-27 10:53:15
382
转载 双链表
第一步,创建一个链表节点,同时让链表节点的前后指针指向空指针,同时让头尾指针指向这个节点,注意,是指向这个节点,而不是这个节点的上下指针。第二步,新建一个链表节点,此时,让第一步的尾指针的next指针指向这个新节点,同时让这个新节点的prev指针指向tail节点,这样就形成了两个节点的链表了,形成链表之后,要让tail指针指向刚建的新节点,使得这个节点称为新的尾节点第三步,循环执行
2012-07-27 10:25:08
2554
转载 单链表的建立,测长,打印,删除,插入,排序,逆置
1、编程实现一个单链表的建立/测长/打印。 答案:#includeusing namespace std;//单链表结构体typedef struct student{ int data; struct student *next;}node; //建立单链表node *create(){ node *head,*p,*s; int x,cycle=1; hea
2012-07-27 09:52:56
1469
转载 Malloc/new和delete/free的区别
http://blog.youkuaiyun.com/hackbuteer1/article/details/6789164http://blog.youkuaiyun.com/gukesdo/article/details/7576453
2012-07-26 10:48:57
614
转载 对象数组和指向对象的指针 指向类成员的指针
1 对象数组 对象数组是指数组元素为对象的数组。这种对象数组与其它数据类型的数组定义方式相同。如: X a[10]; 它创建了一个对象数组a,有10个数组元素,每个数组元素a [i]都是一个对象,所以,需要10次调用构造函数。 C++语言不允许初始化对象数组,所以要创建一个类的对象数组,这个类必须具备以下三个条件
2012-07-26 10:30:32
9501
转载 静态成员 内联成员函数 const对象和const成员函数
1 静态成员 static数据成员 (1) static数据成员属于类,而不属于对象; (2)static数据成员也是具有访问限制的; 在类外只能访问公有的static数据成员,且访问方式为: 类名::static公有数据成员 在类内可以访问所有的static数据成员,采用直接访问的
2012-07-26 10:09:49
1537
转载 构造函数与虚析构函数
1. 构造函数 因为在派生类中构造函数是不能继承的,也没有重定义的必要。在构造函数中调用虚函数将破坏动态绑定逻辑。下面的例子说明了这样动态绑定逻辑。例: #include class base { protected: int x; public: base (int m)
2012-07-25 17:09:56
642
转载 纯虚函数及抽象类
一、 纯虚函数 纯虚函数是一个在基类中声明的虚函数,它在该基类中没有定义,要求任何派生类都必须定义自己的版本。 一般格式如下: class 类名> { virtual 类型>函数名>(参数表>)=0; … };注意: 1、 纯虚函数没有函数体; 2、 最后面的“=0”
2012-07-25 16:42:46
724
转载 多重继承构造函数执行顺序
class 派生类名:继承方式1 基类名1,继承方式2 基类名2,....{ //派生类成员定义};对每个基类可以用不同的继承方式,默认继承方式为private。 在多重继承中,派生类的构造函数与单继承下派生类构造函数相似,它必须负责该派生类所有基类构造函数以及对象成员(如果有的话)构造函数的调用。同时,派生类的参数必须包含完成所有基类、对象成员以及派生类中新增数
2012-07-25 15:52:28
10530
原创 如何将4个字节的int转为1个字节的BYTE?
int i=0x00000001;要取得最后一个字节的0x01?BYTE ret;BYTE *ptr;ptr=(BYTE*)(&i);ret=*ptr; //小端内存#####################################以下内容为转载x的高字节存放到x_high,把低字节x_lowint x=12345;
2012-07-25 09:12:42
5772
原创 combox运用addstring增加选项,发现显示的顺序和添加的不一样,怎么办?
默认情况下,combox具有排序的功能,打开combo控件的属性对话框,选择Style,把sort置为false即可~
2012-07-25 08:27:01
9162
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人