摘要: 导读现在好多C++软件工程师,大多数都是C语言出身,他们在工作过程中用得更多的还是C语言思想,或许他们还没有意识到C++的一些更加有趣的特性。现在给大家解释什么事情是C++可以做好,而C做不好的。希望对这一类人有一点点启发。目录第一次尝试改进另一种改进不用类来改进正文1、第一次尝试现在给定一个例子:... 阅读全文
posted @ 2015-02-10 21:01 yoyos 阅读(1686) 评论(0) 推荐(0) 编辑
摘要: 导读 对于平常的应用程序开发,我们很少需要关注编译和链接过程,因为通常的开发环境都是流行的集成开发环境(IDE),比如Visual Studio、Myeclipse等。这样的IDE一般都将编译和链接的过程一步完成,通常将这种编译和链接合并在一起的过程称为构建,即使使用命令行来编译一个源代码文件,简... 阅读全文
posted @ 2015-01-22 11:00 yoyos 阅读(7768) 评论(0) 推荐(0) 编辑
摘要: 导读 可执行文件只有装载到内存以后才能被CPU执行。早期装载的基本过程就是把程序从外部存储器中读取到内存中的某个位置,随着硬件MMU的诞生,多进程、多用户、虚拟存储的操作系统出现以后,可执行文件的装载过程变得非常复杂。现在我们通过ELF文件在linux下的装载过程,来层层拨开迷雾,看看可执行文件装... 阅读全文
posted @ 2015-01-22 10:40 yoyos 阅读(1926) 评论(0) 推荐(0) 编辑
摘要: 现在的软件,单机模型的越来越少了,更多的是C/S模型,这个模型之间的通信一般是通过socket技术来实现。而socket又涉及到TCP/IP协议,这也就是今天我们主题,基于TCP/IP协议的网络编程。对于TCP/IP协议的理论学习,这里推荐的是Richard 的 《TCP/IP 详解卷1:协议》和《... 阅读全文
posted @ 2015-01-20 10:52 yoyos 阅读(331) 评论(0) 推荐(0) 编辑
摘要: 以下5个题是根据当时的笔试回忆的,不是特别准确,但是大致的意思是已表达到,希望对正在求职C/C++开发工程师的人有所帮助。1.class A{ char c_A;};class B : public A{ int i_A; virtual funcA(); virtual funcB();};siz... 阅读全文
posted @ 2015-01-18 14:49 yoyos 阅读(731) 评论(0) 推荐(0) 编辑
摘要: 在C语言中,“数据”和“处理数据的操作(函数)”是分开来声明的。由一组“分布在各个以功能为导向的函数中”的算法所驱动,处理共同的外部数据。先看一个例子:如果我们声明一个structPoint3d,typedef struct point3d{ float x; float y; float z;}P... 阅读全文
posted @ 2015-01-13 23:20 yoyos 阅读(340) 评论(0) 推荐(0) 编辑
摘要: 导读智能指针是行为类似于指针的类对象,所有的智能指针都会重载->和*操作符。智能指针还有许多其他功能,比较有用的是自动销毁。这主要是利用栈对象的有限作用域以及临时对象(有限作用域实现)析构函数释放内存。当然,智能指针还不止这些,还包括复制时可以修改源对象等。智能指针根据需求不同,设计也不同(写时复制... 阅读全文
posted @ 2015-01-11 00:41 yoyos 阅读(1131) 评论(0) 推荐(0) 编辑
摘要: mutalbe的中文意思是“可变的,易变的”,跟C++中的const是反义词。在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。我们知道,如果类的成员函数不会改变对象的状态,那么这个成员函数一般会声明成con... 阅读全文
posted @ 2015-01-05 11:40 yoyos 阅读(502) 评论(0) 推荐(0) 编辑
摘要: 在一个函数的内部,return的时候返回的都是一个拷贝,不管是变量、对象还是指针都是返回拷贝,但是这个拷贝是浅拷贝。1. 如果返回一个基本类型的变量,比如:int a;a = 5;return a那么就会a的一个拷贝,即5返回,然后a就被销毁了。尽管a被销毁了,但它的副本5还是成功地返回了,所以这... 阅读全文
posted @ 2015-01-04 10:51 yoyos 阅读(1200) 评论(0) 推荐(1) 编辑
摘要: 在学习《C++编程思想》这本书中的通用算法的过程中发现bind1st和bind2nd这两个函数,书本上的例子还是不能理解,在CSDN上看到一篇博客,遂整理成文。bind1st和bind2nd函数用于将一个二元算子(Binary functor,bf)转换成一元算子(Unary functor,uf)... 阅读全文
posted @ 2014-12-11 15:13 yoyos 阅读(440) 评论(0) 推荐(0) 编辑