![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 68
进哥说Java面试
这个作者很懒,什么都没留下…
展开
-
测试大小端模式
int checkSystem( ){ union check { int i; char ch; }c; c.i = 1; return (c.ch ==1);}void main(){ printf("%d\n",checkSystem( )); //如果取出低地址上的值为0 ,毫无疑问,这是大端模式;如果取出低地址上的值为1,毫无疑问,原创 2013-04-30 20:35:54 · 853 阅读 · 0 评论 -
用C++设计一个不能被继承的类
题目:用C++ 设计一个不能被继承的类。分析:这是Adobe 公司2007 年校园招聘的最新笔试题。这道题除了考察应聘者的C++ 基本功底外,还能考察反应能力,是一道很好的题目。在Java 中定义了关键字final ,被final 修饰的类不能被继承。但在C++ 中没有final 这个关键字,要实现这个要求还是需要花费一些精力。首先想到的是在C++ 中,子类的构造函数会自动转载 2014-11-30 18:21:43 · 647 阅读 · 0 评论 -
带参构造函数的类对象数组初始化
带参构造函数的类对象数组初始化原创 2015-01-07 18:47:01 · 8257 阅读 · 0 评论 -
指针和引用
#includeusing namespace std; int main(int argc, char** argv){int i=1;int& ref=i;int x=ref;cout"x is " ref=2;int* p=&i;cout"ref = "", i = "}上面的代码转载 2014-12-03 19:05:17 · 759 阅读 · 0 评论 -
cin.get( ) VS cin.getline( )
cin.get()有两种形式:cin.get(char str[], int size)读取整行,cin.get()读取单个字符。1.cin.get(char str[], int size)cin.getline()和cin.get()都是对输入的面向行的读取,即一次读取整行而不是单个数字或字符,但是二者有一定的区别。cin.get()每次读取一整行并把由Enter键原创 2014-12-23 21:34:25 · 667 阅读 · 0 评论 -
C++ 文本字串处理
#include #include using namespace std;int main(){string strText;string strResult="";ifstream in("test.txt");ofstream out;while(!in.eof()){getline(in,strText,'\n');if(strText.fi原创 2013-04-30 20:25:51 · 896 阅读 · 0 评论 -
placement new之返回值
#include #include using namespace std;class A { public: A(int arg = 5) { cout<<"call A constructor"<<endl; a = arg; } ~A() { cout<<"call A de原创 2015-01-03 20:28:03 · 879 阅读 · 0 评论 -
static_cast, dynamic_cast, const_cast探讨
关于强制类型转换的问题,很多书都讨论过,写的最详细的是C++ 之父的《C++ 的设计和演化》。最好的解决方法就是不要使用C风格的强制类型转换,而是使用标准C++的类型转换符:static_cast, dynamic_cast。标准C++中有四个类型转换符:static_cast、dynamic_cast、reinterpret_cast、和const_cast。下面对它们一一进行介绍。转载 2015-01-04 12:30:18 · 570 阅读 · 0 评论 -
const在c/c++中的区别
C++中的const正常情况下是看成编译期的常量,编译器并不为const分配空间,只是在编译的时候将期值保存在名字表中,并在适当的时候折合在代码中.所以,以下代码:#include using namespace std;int main(){ const int a = 1; const int b = 2; int array[ a + b ] = {0}; f转载 2015-04-04 20:57:30 · 580 阅读 · 0 评论 -
拷贝构造函数和赋值操作符在继承中的应用
在继承中,拷贝构造函数和赋值操作符表现的特性是不同的。拷贝构造函数承担着构造和拷贝双重责任,无论什么情况下都需要构造基类部分,赋值操作符则不同,其目标是已经构造好的对象,只需要赋值即可。派生类无构造函数和赋值操作符场景:#include using namespace std;class B {public: B() { cout << "B()" << endl;原创 2016-04-29 11:32:53 · 439 阅读 · 0 评论 -
C++中构造函数调用构造函数
#include stdlib.h>#include iostream>using namespace std;struct CLS{ int m_i; CLS( int i ) : m_i(i){} CLS() { CLS(0); }};int main(){ CLS obj;转载 2014-11-30 19:13:04 · 1025 阅读 · 0 评论 -
C++中的单例模式
单例模式也称为单件模式、单子模式,可能是使用最广泛的设计模式。其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。有很多地方需要这样的功能模块,如系统的日志输出,GUI应用必须是单鼠标,MODEM的联接需要一条且只需要一条电话线,操作系统只能有一个窗口管理器,一台PC连一个键盘。 单例模式有许多种实现方法,在C++中,甚至可以直接用一个全局变量做转载 2014-11-15 20:28:59 · 580 阅读 · 0 评论 -
static_cast、dynamic_cast、reinpreter_cast和const_cast
1 static_cast用法:static_cast ( expression ) 该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法:①用于类层次结构中基类和子类之间指针或引用的转换。 进行上行转换(把子类的指针或引用转换成基类表示)是安全的; 进行下行转换(把基类指针或引用转换成子类表示)时原创 2013-05-02 23:40:45 · 800 阅读 · 0 评论 -
c++异常处理
一、什么是异常处理 一句话:异常处理就是处理程序中的错误。二、为什么需要异常处理,以及异常处理的基本思想 C++之父Bjarne Stroustrup在《The C++ Programming Language》中讲到:一个库的作者可以检测出发生了运行时错误,但一般不知道怎样去处理它们(因为和用户具体的应用有关);另一方面,库的用户知道怎样处理这些错误,但却转载 2013-12-18 15:43:43 · 736 阅读 · 0 评论 -
const(C++ VS C)
constx在C++中为常量, C中为只读变量原创 2014-05-16 11:43:12 · 667 阅读 · 0 评论 -
利用C++对象确定性析构的原则来解析单例模式
设计模式思想是可重用,我们在编程的过程中,或多或少都会接触到设计模式,只是,有时,我们相交却未相识罢了,那么我们今天来讲解单例模式,并且附之一个C++的编程技巧。我们知道单例模式在实际开发过程中是很有用的,单例模式的特征我们可能都知道:1、一个类只有一个实例2、提供一个全局访问点3、禁止拷贝我们来逐个分析:1、如果要实现只有一个实例,我们需要做的事情转载 2014-06-06 21:30:52 · 1453 阅读 · 0 评论 -
析构函数不能抛出异常
C++ 异常 与 ”为什么析构函数不能抛出异常“ 问题C++ 用异常使得可以将正常执行代码和出错处理区别开来。 比如一个栈,其为空时,调用其一个pop 函数,接下来怎么办? 栈本身并不知道该如何处理,需要通知给其调用者(caller),因为只有调用者清楚接下来该怎么做。 异常,就提供了一个很好机制。 但是异常需要操作系统,编译器,RTTI的特性支持。下面围绕一个问题 “为什么析构函数不转载 2014-08-08 21:41:33 · 764 阅读 · 0 评论 -
为什么内联函数,构造函数,静态成员函数不能为virtual函数
为什么内联函数,构造函数,静态成员函数不能为virtual函数?1> 内联函数内联函数是在编译时期展开,而虚函数的特性是运行时才动态联编,所以两者矛盾,不能定义内联函数为虚函数。2> 构造函数构造函数用来创建一个新的对象,而虚函数的运行是建立在对象的基础上,在构造函数执行时,对象尚未形成,所以不能将构造函数定义为虚函数。3> 静态成员函数静态成员函数转载 2014-09-10 18:01:07 · 783 阅读 · 0 评论 -
揭开私有继承的面纱
什么是私有继承?以前在学校学习的时候,冥冥乎知道有这样一个东西,却没有仔细研究过。后来工作中用到Boost库才开始了解它。如果说保护继承大多是为了语言完整性的话,私有继承还是有一些用途的。私有继承 vs 公有继承公有继承继承的是接口与实现,它表示了类与类之间is-a的关系。而私有继承继承的仅仅是实现,它表示了has-a (或者 is-implemented-in-terms-o转载 2014-08-28 22:00:33 · 637 阅读 · 0 评论 -
跟我一起用C++实现Java Thread库(一)
最近学习Java多线程编程,发现Java标准库中的java.lang.Thread接口定义十分友好简洁,使用起来十分方便。不禁想起之前用C/C++写多线程时的烦恼,总会写一些pthread_*函数。于是萌生了这个念头,希望用C++实现一套类似Java Thread的库,简化以后的C++多线程开发。原创 2017-08-22 12:50:38 · 1015 阅读 · 0 评论