- 博客(15)
- 资源 (7)
- 收藏
- 关注
转载 设置 VS2013 c++ 新建项目时默认为64位
也许你每次在VS新建工程的时候都希望能默认生成X64工程。但是每次新建工程的都是默认的win32.这时可以修改VS安装目录下:Microsoft Visual Studio 12.0\VC\VCWizards里面的三个文件:default.vcxproj、DefaultTest.vcxproj、vcupgradedefault.vcxproj用记事本打开,将Wi
2014-12-30 16:12:38 2537
原创 C++模板(类模板、函数模板)
1、在c++Template中很多地方都用到了typename与class这两个关键字,而且好像可以替换,是不是这两个关键字完全一样呢?答:class用于定义类,在模板引入c++后,最初定义模板的方法为:template,这里class关键字表明T是一个类型,后来为了避免class在这两个地方的使用可能给人带来混淆,所以引入了typename这个关键字,它的作用同class一样表明后面的符号为
2014-12-30 14:23:16 596
转载 在类模板的声明和定义中把.h与.cpp分离
1.声明部分// Tpl.h#pragma oncetemplateclass CTpl {public: CTpl(); virtual ~CTpl(); void Test(T t);};2.实现部分// Tpl.cpp#include "Tpl.h"templateCTpl::CT
2014-12-26 17:04:25 690
原创 套接字socket
套接字工作原理: 要通过互联网进行通信,你至少需要一对套接字,其中一个运行于客户机端,我们称之为ClientSocket,另一个运行于服务器端,我们称之为ServerSocket。 根据连接启动的方式以及本地套接字要连接的目标,套接字之间的连接过程可以分为三个步骤:服务器监听,客户端请求,连接确认。 所谓服务器监听,是服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的
2014-12-23 19:29:32 713
原创 关于QT构造函数参数parent的解释
比如说我在头文件里定义了一个类class PaintWidget:public QWidget{public:PaintWidget(QWidget*parent=0)}然后在cpp中写PaintWidget::PaintWidget(QWidget*parent):QWidget(parent)意思是说,重定义父对象。如何重定义呢?看parent参数。当PaintW
2014-12-23 11:06:41 7490
转载 互联网TCP/IP五层模型(二)
转载自:阮一峰互联网协议入门(一)分析了互联网的总体构思,从下至上,每一层协议的设计思想。这是从设计者的角度看问题,今天我想切换到用户的角度,看看用户是如何从上至下,与这些协议互动的。==============================================================互联网协议入门(二)作者:阮一峰(接
2014-12-16 23:03:01 939 1
转载 进程与线程的一个简单解释
转载自:阮一峰进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。1.计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。2.假定工厂的电力有限,一次只能供给一个车间使用。也就是说,一个车间开工的时候
2014-12-16 22:13:45 479
转载 代码的抽象三原则
转载自:阮一峰软件开发是"抽象化"原则(Abstraction)的一种体现。所谓"抽象化",就是指从具体问题中,提取出具有共性的模式,再使用通用的解决方法加以处理。开发软件的时候,一方面,我们总是希望使用别人已经写好的代码,另一方面,又希望自己写的代码尽可能重用,以求减少工作量。要做到这两个目标,这需要"抽象化"。最近,我读到美国程序员Derick Bail
2014-12-16 20:41:59 683
转载 计算机是如何启动的?
转载自: 阮一峰从打开电源到开始操作,计算机的启动是一个非常复杂的过程。我一直搞不清楚,这个过程到底是怎么回事,只看见屏幕快速滚动各种提示...... 这几天,我查了一些资料,试图搞懂它。下面就是我整理的笔记。零、boot的含义先问一个问题,"启动"用英语怎么说?回答是boot。可是,boot原来的意思是靴子,"启动"与靴子有什么关系呢? 原
2014-12-16 19:30:29 467
转载 Stack的三种含义
转载自:阮一峰学习编程的时候,经常会看到stack这个词,它的中文名字叫做"栈"。理解这个概念,对于理解程序的运行至关重要。容易混淆的是,这个词其实有三种含义,适用于不同的场合,必须加以区分。含义一:数据结构stack的第一种含义是一组数据的存放方式,特点为LIFO,即后进先出(Last in, first out)。在这种数据结构中,数据像积木那样
2014-12-16 16:46:47 747
原创 互联网TCP/IP五层模型(一)
转载自:阮一峰我们每天使用互联网,你是否想过,它是如何实现的?全世界几十亿台电脑,连接在一起,两两通信。上海的某一块网卡送出信号,洛杉矶的另一块网卡居然就收到了,两者实际上根本不知道对方的物理位置,你不觉得这是很神奇的事情吗?互联网的核心是一系列协议,总称为"互联网协议"(Internet Protocol Suite)。它们对电脑如何连接和组网,做出了详尽的规定。理解了这
2014-12-16 16:20:19 5209 1
原创 编译原理
源码要运行,必须先转成二进制的机器码。这是编译器的任务。比如,下面这段源码(假定文件名叫做test.c)。#include stdio.h>int main(void){ fputs("Hello, world!\n", stdout); return 0;}要先用编译器处理一下,才能运行。$ gcc test.c$ ./a.outHe
2014-12-16 16:14:33 526
原创 友元函数和友元类声明举例
注: 友元是一种定义在类外部的普通函数或类,但它需要在类体内进行说明,为了与该类的成员函数加以区别,在说明时前面加以关键字friend。友元不是成员函数,但是它可以访问类中的私有成员。所以,友元声明只能出现在类定义中。因为友元不是授权类的成员,所以它不受其所在类的声明区域public private 和protected 的影响。即友元函数的声明可以出现在类的任何地方class A{
2014-12-08 15:57:29 2518
转载 Qt5 中信号与槽的新写法
Qt4中最常用的信号槽写法:connect(obj1, SIGNAL(fun1(param1, param2,...)), obj2, SLOT(fun2(param1,...)));//编译后connect(obj1, "fun1(param1, param2,...)", obj2, "fun2(param1,...)");在程序编译阶段,程序会将函数以字符串的形式进行
2014-12-02 21:43:37 1986
转载 Qt学习:理解隐式共享
(1)深拷贝:即就是生成对象的一个完整的复制品;(2)浅拷贝:只是一个引用复制(比如仅仅复制指向共享数据的指针)。(3)隐式共享:也叫做回写复制(copy on write)。Qt中的很多C++类通过使用隐式数据共享来最大化资源的使用效率和最小化复制的资源耗费。将隐式共享类作为参数传递不仅安全而且效率高,因为在这个过程中只有指向这个数据的指针被传递,并且当且仅当有函
2014-12-02 09:59:45 5120 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人