C/C++编程
nk_wang
2013年毕业于西安石油大学应用物理学专业,精通C/C++编程语言,MFC、Qt图形界面框架;熟悉设计模式、网络编程、数据库、Windows、Linux环境下的软件研发。
展开
-
C++ 类的静态成员详细讲解
在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用。所以在所有对象中都可以共享它。使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节省内存。静态成员的定义或声明要加个关键static。静态成员可以通过双冒号来使用即::。 在C++中类的静态成员变量和静态成员函数是个容易出错的地方,本文先通过几个例子来总结静转载 2014-11-17 23:39:43 · 420 阅读 · 0 评论 -
C/C++ 笔试、面试题目汇总(续)
一.找错题试题1:void test1(){ charstring[10]; char* str1 ="0123456789"; strcpy( string, str1 );} 试题2:void test2(){ charstring[10],str1[10]; int i; for(i=0; i10; i++)原创 2015-03-22 11:11:29 · 610 阅读 · 1 评论 -
C/C++ 笔试、面试题目汇总
C++的基础知识,笔试面试必备 1.求下面函数的返回值( 微软)int func(x) { int countx =0; while(x) { countx ++; x = x&(x-1); } return countx; }假定x = 9999。 答案:8思路:将x转化为2进制,看含有的1的个数。原创 2015-03-22 11:07:17 · 522 阅读 · 0 评论 -
有点意思的C/C++问题及解答:6-10
问题 6:非C++内建型别A 和B,在哪几种情况下B 能隐式转化为A? (1)class A { ...... }; class B : public A { ……} ; // B 公有继承自A,可以是间接继承的(2)class A { ...... }; class B { operator A() { return A::A(); } ......}; // B 实现了转载 2015-03-04 21:53:25 · 458 阅读 · 0 评论 -
有点意思的C/C++问题及解答:1-5
问题1 :写一个交换两个数的宏方法1:可以用异或运算来做,如果是浮点数,这个方法就不行了[cpp] view plaincopyprint?#define _swap(a,b) { a=a^b; b=a^b;a=a^b; } 方法2:用加减法来做,可能会溢出[cpp] view pla转载 2015-03-04 21:50:53 · 429 阅读 · 0 评论 -
有点意思的C/C++问题及解答:21-25
问题21:判断C编译器是否支持嵌套注释。 解法:嵌套注释是指在/* */ 中出现/* ... */,定义这个式子: /*/*/0*/**/1 。如果编译器不支持嵌套注释,那么这个式子为0*1。如果支持嵌套注释,那么这个式子为1。摘自《C陷阱与缺陷》。 问题22:判断机器的大小端。 解法:用联合,先将其中的word赋值为0x1234567转载 2015-03-04 21:56:02 · 544 阅读 · 0 评论 -
有点意思的C/C++问题及解答:16-20
问题16:在C++中定一个不能被继承的类 解法:容易想到的就是将这个类的构造函数和析构函数都设为私有的。这样继承的类就无法调用父类的构造函数和析构函数,编译时就会报错。但是不能被继承的类如何产生对象呢?可以利用静态函数,它与类的对象无关,可以直接通过类的作用域直接调用。[cpp] view plaincopyprint?c转载 2015-03-04 21:54:45 · 485 阅读 · 0 评论 -
有点意思的C/C++问题及解答:11-15
问题11:下面这个函数希望完成什么任务?[cpp] view plaincopyprint?int func(int x) { int countx = 0; while(x) { countx ++; x = x&(x-1);转载 2015-03-04 21:52:39 · 446 阅读 · 0 评论 -
C++虚函数及虚函数表解析
一、背景知识(一些基本概念)虚函数(Virtual Function):在基类中声明为 virtual 并在一个或多个派生类中被重新定义的成员函数。纯虚函数(Pure Virtual Function):基类中没有实现体的虚函数称为纯虚函数(有纯虚函数的基类称为虚基类)。C++ “虚函数”的存在是为了实现面向对象中的“多态”,即父类类别的指针(或者引用)指向其子类的实例,然后通过转载 2015-03-15 20:34:16 · 487 阅读 · 0 评论 -
C++ new运算符误用之详解
1.plain new/delete.普通的new定义如下:void *operator new(std::size_t) throw(std::bad_alloc);void operator delete(void*) throw();注:标准C++ plain new失败后抛出标准异常std::bad_alloc而非返回NULL,因此检查返回值是否为NULL判断分配是原创 2014-11-21 21:09:24 · 780 阅读 · 0 评论 -
位操作基础篇之位操作全面总结
位操作篇共分为基础篇和提高篇,基础篇主要对位操作进行全面总结,帮助大家梳理知识。提高篇则针对各大IT公司如微软、腾讯、百度、360等公司的笔试面试题作详细的解答,使大家能熟练应对在笔试面试中位操作题目。 下面就先来对位操作作个全面总结,欢迎大家补充。在计算机中所有数据都是以二进制的形式储存的。位运算其实就是直接对在内存中的二进制数据进行操作,因此处理数据的速度非常快。转载 2014-11-20 23:58:55 · 524 阅读 · 0 评论 -
宏与内联函数的区别
总结目的:本人曾经一度选择放弃开发岗位,然后仅仅三个月之后又觉得自己的选择是错误的,还是应该继续自己比较擅长的开发,然而一次面试却让我发现,很小的知识点已经遗忘。(1)、宏只做简单的字符串替换,函数是参数传递,所以必然有参数类型检查(支持各种类型,而不是只有字符串)。(2)、宏不经计算而直接替换参数,函数调用则是将参数表达式求值再传递给形参。(3)、宏在编译前进行,即先替换再编原创 2015-12-05 16:43:38 · 544 阅读 · 0 评论