随笔分类 - C++
摘要:一、写出输出结果 #include<stdio.h> int main(){ int a[3]; a[0] = 0; a[1] = 1; a[2] = 2; int *p,*q; p = a; q = &a[2]; int c = a[q-p]; printf("value c = %d/n",c+
阅读全文
摘要:1、写出下列代码的运行结果: #include<stdio.h> #include<string.h> #define STRCPY(a,b) strcpy(a##_p,#b) int main(){ char var1_p[20]; char var2_p[30]; strcpy(var1_p,"
阅读全文
摘要:题目:如何对C++中输入的字符串进行分割呢?如“I am a student”,去除空格后分割成为“I”,“am”, “a”, “student”四个单词思路:直接参考代码代码:void stringSplit(string s,char splitchar,vector& vec){ if(...
阅读全文
摘要:题目:In which of the following scenarios is a Copy Constructor called or invoked?A.When no conversion function exists for converting the class object to...
阅读全文
摘要:C/C++程序设计员应聘常见面试笔试试题深入剖析http://www.nowcoder.com/discuss/1826?type=2&order=0&pos=23&page=11.引言本文的写作目的并不在于提供C/C++程序员求职面试指导,而旨在从技术上分析面试题的内涵。文中的大多数面试题来自各大...
阅读全文
摘要:(文章出处不详,转自:http://blog.csdn.net/hairetz/article/details/4137000)C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“...
阅读全文
摘要:CString类的定义如下:class CMyString{public: CMyString(const char* pData=NULL); CMyString(const CMyString& str); CMyString& operator=(const CMyStrin...
阅读全文
摘要:(转自http://www.cnblogs.com/yxnchinahlj/archive/2011/02/12/1952550.html)之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的...
阅读全文
摘要:主要内容:1、qsort的用法2、sort的用法3、qsort和sort的区别qsort的用法:原型:void qsort(void *base, int nelem, int width, int (*fcmp)(const void *,const void *));功能:使用快速排序例程进行排...
阅读全文
摘要:主要内容:1、一级指针和二级指针2、函数指针传递的例子3、什么时候需要传递二级指针?4、二级指针在链表中的使用1、一级指针和二级指针一级指针:即我们一般说的指针,就是内存地址;二级指针:指向指针的指针,就是地址的地址;如:int a=1;int *p=&a; // p为a变量的地址,通过*p可以得...
阅读全文
摘要:题目:1、一个函数fun()均匀返回0和1,各自的概率是50%,利用这个函数实现一个函数,使之返回 1的概率为3/4,0的概率为1/4。2、假如有一个函数rand5能等概率生成1 - 5 之间的整数,如何利用rand5来实现rand7?rand7函数的要求是能够等概率生成1 - 7之间的整数。思路:...
阅读全文
摘要:以下两段程序的输出是什么?程序1:#include "stdio.h"class Base { public: int Bar(char x) { return (int)(x); } virtual int Bar(int x) { ...
阅读全文
摘要:主要内容:1、C++类继承中的构造函数和析构函数2、C++多态性中的静态绑定和动态绑定3、C++多态性中析构函数声明为虚函数1、C++类继承中的构造函数和析构函数在C++的类继承中,建立对象时,首先调用基类的构造函数,然后在调用下一个派生类的构造函数,依次类推;析构对象时,其顺序正好与构造相反;具体...
阅读全文
摘要:静态绑定和动态绑定是C++多态性的一种特性。1、对象的静态类型和动态类型:对象的静态类型:对象在声明是采用的类型,在编译期确定;对象的动态类型:当前对象所指的类型,在运行期决定,对象的动态类型可以更改,但静态类型无法更改。class B{};class C: public B{};class D: ...
阅读全文
摘要:思想:在C++的类继承中,建立对象时,首先调用基类的构造函数,然后在调用下一个派生类的构造函数,依次类推;析构对象时,其顺序正好与构造相反;例子:#include using namespace std;class Shape{public: void Draw() {cout<<"Base:...
阅读全文
摘要:1、和在你的编译器include文件夹里面可以看到,二者是两个文件,里面的代码是不一样的。后缀为.h的头文件c++标准已经明确提出不支持了,早些的实现将标准库功能定义在全局空间里,声明在带.h后缀的头文件里;c++标准为了和C区别开,也为了正确使用命名空间,规定头文件不使用后缀.h。因此,当使用时,...
阅读全文
摘要:1、什么是左值和右值?左值就是出现在表达式左边的值(等号左边),可以被改变,他是存储数据值的那块内存的地址,也称为变量的地址;右值是指存储在某内存地址中的数据,也称为变量的数据。左值可以作为右值,但右值不可以是左值。因此也只有左值才能被取地址。2、举两个问题:int i = 0;(i++)+=i; ...
阅读全文
摘要:在看《程序员面试笔试宝典》时,发现了这样一个问题,书中只给出了++i的效率高一些,但并没有给出具体的解释和说明。在网上找到下面的答案:1、从高级层面上解释++i 是i=i+1,表达式的值就是i本身i++ 也是i=i+1,但表达式的值是加1前的副本,由于要先保存副本,因此效率低一些。对于C++内置类型...
阅读全文
摘要:题目:现有一个 n 位数,你需要删除其中的 k 位,请问如何删除才能使得剩下的数最大?比如当数为 2319274, k=1 时,删去 2 变成 319274 后是可能的最大值。思路:1、贪心算法每次从高位向低位数,删除高位数字比低位数字小的那位数字。如2319274第一次21,略过,1 > nums...
阅读全文
摘要:在网上看到一道题,实现一个memcpy函数,于是查了一下memcpy的函数原型,如下:void* memcpy(char *strDest, const char *strSrc, int Count){ if(strDest == NULL || strSrc == NULL || Coun...
阅读全文