ITPub博客

首页 > Linux操作系统 > Linux操作系统 > C++面试题(2)

C++面试题(2)

原创 Linux操作系统 作者:Hemes 时间:2010-07-26 09:35:51 0 删除 编辑

MFC中大部分的类是从CObject类继承而来的。

(a++) += a; //错误,左侧不是一个有效变量,不能赋值

头文件中的ifndef...define...endif防止头文件被重复引用

函数和变量被C++编译后在符号库中的名字与C语言的不同,被extern "C"修饰的变量和函数是按照C语言方式编译和连接的。

switch()中不允许的数据类型是实型

MFC中CString不是类型安全类,其它数据类型转换到CString可以使用CString的成员函数Format来转换

C++中为什么用模板类:
(1)可用来创建动态增长和减小的数据结构
(2)它是类型无关的,因此具有很高的可复用性。
(3)它在编译时而不是运行时检查数据类型,保证了类型安全
(4)它是平台无关的,可移植性
(5)可用于基本数据类型

CSingleLock同步多个线程对一个数据类的同时访问

winsock建立连接的主要实现步骤?
服务器端:
socker()建立套接字,绑定(bind)并监听(listen),用accept()等待客户端连接。

客户端:
socker()建立套接字,连接(connect)服务器,连接上后使用send()和recv(),在套接字上写读数据,直至数据交换完毕,closesocket()关闭套接字。

服务器端:
accept()发现有客户端连接,建立一个新的套接字,自身重新开始等待连接。该新产生的套接字使用send()和recv()写读数据,直至数据交换完毕,closesocket()关闭套接字。

引用与指针有什么区别?
1) 引用必须被初始化,指针不必。
2) 引用初始化以后不能被改变,指针可以改变所指的对象。
3) 不存在指向空值的引用,但是存在指向空值的指针。

static:
修饰变量:(1)函数体内,在调用过程中维持值不变
                    (2)模块内,函数体外,仅可供模块内的函数访问,模块外函数不可访问
修饰函数:模块内,仅可供模块内的函数访问,模块外的函数不可访问

构造函数不能声明为虚函数

堆栈溢出一般是由没有回收垃圾资源导致的

全局变量存储在静态数据库,局部变量存储在堆栈

平衡二叉树:左右子树都是平衡二叉树,且左右子树的深度差值的绝对值不大于1

写文件
File *pFile = fopen("1.txt","w");
fwrite("maliang",1,7,pFile);
fflush(pFile);//刷新缓冲区
fclose(pFile);//关闭文件
fseek(pFile,0,SEEK_SET[SEEK_CUR/SEEK_END]);//将文件指针移动到文件开始处

读文件
File pFile = fopen("1.txt","r");
//char ch[100];
//memset(ch,0,100);
//fread(ch,1,100,pFile);
//MessageBox(ch);
char *pBuf;
fseek(pFile,0,SEEK_END);
int len=ftell(pFile);
pBuf=new char[len+1];
rewind(pFile);//将文件指针移动到文件开始处
fread(pBuf,1,len,pFile);
pBuf[len]=0;
MessageBox(pBuf);
fclose(pFile);

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23366483/viewspace-669408/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2010-07-19

  • 博文量
    18
  • 访问量
    11269