自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (11)
  • 收藏
  • 关注

原创 对象使用完成后

<br />class base { public: base() { cout << "base()"; }~base() { cout << "~base()"; }}; class subs: public base { public: subs() { cout << "subs()"; } ~subs() { cout << "~subs()"; } }; void main() {subs s;}

2011-01-03 19:26:00 417

原创 “throw e”和“throw”

前者会产生临时对象,然后往上一级跑出异常。

2010-12-31 15:48:00 973

原创 函数模板 缺省情况下是内联的。

<br /><br />在类的声明时,其成员函数的函数体写在类的结构体中时,认为其成员函数为默认的内联函数。其他的默认都不是内联函数。

2010-12-31 15:34:00 1381

原创 析构函数可以是纯虚函数

虽然抽象类的析构函数可以是纯虚函数,但要实例化其派生类对象,仍必须提供抽象基类中析构函数的函数体。

2010-12-31 14:52:00 1002

原创 伦理

<br />我们知道malloc要和free成对出现,new要和delete成对出现,这样才安全,假使两对夫妻将他们拆为两对,那么这拆开的两对在一起工作时会安全吗?<br />所以,我们一定要成对出现,即使我们的贞操观念很强,伦理上也不符合。<br /> 

2010-12-30 20:41:00 4523

原创 访问域的问题

<br />#include<iostream>using namespace std;void f(){}class A{public: void f(int){}};class B : public A{public: using A::f; void f(int*){} static void f(int**){} void test();};void B::test(){ int x=0; int * p=N

2010-12-29 09:06:00 484

原创 父类的构造函数中最好不要调用虚函数

<br />class Base{public: int a; Base(){print();}; virtual ~Base(){ g_iCount += 1;}public: int getA(){} void setA(int i){} virtual void print(){cout<<"1"<<endl;}};class Derive:public Base{public: Derive(){print();} ~Derive(){

2010-12-27 09:20:00 694

原创 尽量用const和inline而不用#define

#define可以将“表达式”替换“函数”,形式 上完成了函数的功能,但是有些时候会出现问题,这时我们可以使用inline来取代#define。用#define定义常量时,用const会更安全,因为#define使用的是预处理器,而const使用的是编译器,会更安全。

2010-12-22 08:14:00 466

原创 赋值与复制的区别

<br />“复制”只会在对象初始化时才会出现。如果一个对象已经有值,而这个值要被重写或覆盖,这就是“赋值”。复制构造函数是一个构造函数,只能用于对象创建时,而不能用于对象的赋值;对象的赋值一般通过重载赋值操作符。

2010-12-17 08:51:00 965

原创 操作符重载的限制

<br />在操作符重载时以下所列的事情不能做:<br />1、不能增加新的操作符号。只能对语言列出的操作符重新定义其含义;<br />2、有些操作符不能重载,如对象的成员访问::,sizeof,三元操作符,等等<br />3、不能改变操作符的元数。即不能将一元操作改为二元等<br />4、不能改变操作符的优先级。<br />5、不能重新定义内置类型的操作符。

2010-12-16 09:05:00 397

原创 友元和继承访问类成员的方式的区别

<br />class dog{public: void shout(){cout<<"dog"<<endl;} friend class pig; dog(){dogyear=0;} ~dog(){}protected: int dogyear;};class niao{public: void shout() const{cout<<"niao"<<endl;}};class dogniao:public dog, public niao{

2010-12-15 10:03:00 1240

原创 容易上当的多态

class Base{public: virtual void display(std::string strShow = "I am Base class !") { std::cout display(); pDerive->display(); delete pBase; delete pDerive; return

2010-12-15 08:10:00 418

原创 多态

<br />class Base{public: virtual bool operator == (int iValue) { std::cout << "I am Base class !" << std::endl; return true; } virtual ~Base(){}};class Derive: public Base{public: virtual bool operator == (int iValue) { std

2010-12-14 08:49:00 367

原创 父类的构造函数中不能调用纯虚函数,同样在析构函数中不能调用纯虚函数

<br />#include <iostream>#include <string>using namespace std;class CParent{public: CParent() {} virtual ~CParent() {Print();}public: virtual void Print()=0 ;};class CSon : public CParent{public: CSon() {} vir

2010-12-14 08:17:00 935

原创 const要好好看看

<br />const int ic;  <br />const int *pic;  <br />int * const cpi;<br />const int * const cpic;<br />看看const的使用方法

2010-12-10 20:17:00 437

原创 变量初始化的顺序

<br />#include <iostream>using namespace std;class Base{protected: int m_a;public: Base(int a):m_a(a){} int getM_a(){return m_a;}};class Derived:public Base{ int m_b; int m_c;public: Derived (int a, int c):m_c(c), Base(a), m

2010-12-08 20:20:00 400

原创 C++多继承学习

<br />class A<br />{<br />public:<br /> void Func(){}<br />};<br />class B<br />{<br />private:<br /> bool Func() const{return 0;}<br />};<br />class C: <br /> public A, <br /> public B<br />{<br />}; // class definition is unimportant<br />int main()<br /

2010-12-08 11:14:00 493

原创 C++学习心得体会一

<br />1、在对子类对象进行删除时,会默认调用父类的析构函数,无论父类析构函数是否使用virtual关键字。<br />2、如果是父类指针指向的是子类对象,在删除该父类指针时,如果父类的析构函数没有使用virtual关键字,那么就不会调用子类的析构函数。因此,最好将所有的析构函数都使用virtual关键字。<br />3、对内联函数必须要进行定义。

2010-12-06 09:01:00 1098

原创 Android初试

第1章  Android应用程序开发步骤<br />通过边学习边记录的方式了解Android开发应用程序的方法。1.1  建立界面<br />建立界面主要是通过编写XML文档。1.1.1  应用程序的主界面为res/layout/main.xml<br />main.xml文件的内容为界面的主要部分。创建Android工程后可以首先修改此文件,修改的内容如下:<br /><?xml version="1.0" encoding="utf-8"?><br /><LinearLayout xmlns:andro

2010-09-05 23:02:00 486

转载 进程控制

进程控制与进程通信编程作者:宋宝华 1.Linux进程       Linux进程在内存中包含三部分数据:代码段、堆栈段和数据段。代码段存放了程序的代码。代码段可以为机器中运行同一程序的数个进程共享。堆栈段存放的是子程序(函数)的返回地址、子程序的参数及程序的局部变量。而数据段则存放程序的全局变量、常数以及动态数据分配的数据空间(比如用malloc函数申请的内存)。与代码段不同,如果系统中同时运行多个相同的程序,它们不能使用同一堆栈段和数据段。Linux进程主要有如下几种状态:用户状态(进程在用户状态下运行

2010-09-05 22:53:00 389

转载 进程控制与进程通信编程

进程控制与进程通信编程作者:宋宝华 1.Linux进程       Linux进程在内存中包含三部分数据:代码段、堆栈段和数据段。代码段存放了程序的代码。代码段可以为机器中运行同一程序的数个进程共享。堆栈段存放的是子程序(函数)的返回地址、子程序的参数及程序的局部变量。而数据段则存放程序的全局变量、常数以及动态数据分配的数据空间(比如用malloc函数申请的内存)。与代码段不同,如果系统中同时运行多个相同的程序,它们不能使用同一堆栈段和数据段。Linux进程主要有如下几种状态:用户状态(进程在用户状态下运行

2010-06-23 14:41:00 559

原创 函数指针

<br />函数指针是C语言中类似C++的多态的概念,应用场合如设备驱动中。<br />举例:<br />#include <stdio.h><br />int max(int x, int y) <br />{<br /> return (x>y?x:y);<br />}<br />int main(int argc, char* argv[])<br />{<br /> int max(int, int);<br /> int (*p)(int, int)=&max;<br /> int a, b, c

2010-06-08 22:28:00 359

转载 Linux环境进程间通信 信号

Linux环境进程间通信(二): 信号(上)    级别: 初级郑彦兴 (mlinux@163.com)国防科大2003 年 1 月 01 日linux信号机制远远比想象的复杂,本文力争用最短的篇幅,对该机制做了深入细致的分析。读者可以先读一下信号应用实例(在信号(下)中),这样可以对信号发送直到相应的处理函数执行完毕这一过程有个大致的印象。本文尽量给出了较新函数的应用实例,着重说明这些的功能。一、信号及信号来源信号本质信号是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理

2010-06-05 07:56:00 366

转载 Linux下C语言编程--进程通信、消息管理

 前言:Linux下的进程通信(IPC)  <br />    Linux下的进程通信(IPC)  <br /><br />1.POSIX无名信号量  <br />2.System V信号量  <br />3.System V消息队列  <br />4.System V共享内存  <br /><br />-------------------------------------------------------------------------------- <br />1。POSIX无名信号量    

2010-06-05 07:52:00 424

转载 有名管道

<br />mkfifo(建立实名管道)<br />相关函数<br />pipe,popen,open,umask<br />表头文件<br />#include<br />#include<br />定义函数<br />int mkfifo(const char * pathname,mode_t mode);<br />函数说明<br />mkfifo()会依参数pathname建立特殊的FIFO文件,该文件必须不存在,而参数mode为该文件的权限(mode%~umask),因此 umask值也会影响到

2010-06-05 07:22:00 545

转载 linux进程间通信方式之匿名管道

<br />linux的进程间通信方式主要有:匿名管道、有名管道、消息队列、共享内存、信号、信号量及信号灯、socket网络通信。近日由于项目需要,用linux编写arm的应用程序,里面有几个功能模块,若干进程,进程间的通信方式选择了管道、共享内存和信号量的配合。这几天终于把程序的框架搭建好了,而我也对管道通信有了进一步的认识。<br />匿名管道只能用于具有亲缘关系,如父子、兄弟这样的进程间通信。创建方式<br />#include <unistd.h><br />int pipe(int fd[2])

2010-06-05 07:11:00 641

原创 类与结构体的大小

<br />类的大小由其成员变量决定,结构体同样。请看下面的结果。<br />#include <iostream><br />using namespace std;<br />class A1  <br />{<br />public:<br /> int a;<br /> static b;      //静态变量存放在全局区<br /> short c;<br /> A1();<br /> ~A1();<br />};//8<br />class A2<br />{<br />public:<br

2010-06-01 22:25:00 408

原创 数组和指针

天天在看程序,经常在写程序,对于基本的数组和指针,从来没有进行深刻的总结过。数组和指针,是程序分配内存的两种方式,对于不同的情况应该采用不同的策略。一般来说,提倡采用动态分配的方式来处理内存分配,按需分配,那就是用到指针了。但是,当分配的内存经常发生变化,需要重新分配或者在使用的时候比较频繁分配和删除时,可以考虑采用数组,也就是静态的分配的方式,这也就是兵法上说的一静制动、以不变应万变。区分下

2010-05-30 22:57:00 370

原创 我的第一篇博客文章-----JavaBean应用

本来是用笔记本记下来的,后来发现记在QQ空间或者CSDN博客也不错,我以后把自己的学习经历留在这里,同时也接收大家的提醒,对自己更有益。1、Tomcat、JAVA环境配置就略过,直接采用MyEclipse建立Web Project工程,省去了配置目录的麻烦。 2、建立JavaBean类,应该严格按照java的命名规则来命名。 package com.javabean.lg;

2009-08-11 20:36:00 510 1

双向链表.doc循环链表的存储结构

双向链表.doc复习线性链表的存储结构循环链表的存储结构

2011-03-21

经典算法C语言描述,相当丰富。

经典算法代码和算法说明。收集了很多知名的算法和代码,相当好的东西。C语言描述,相当丰富。

2011-03-09

KMP资料和代码收集

KMP资料和代码收集用于子串处理的方法和代码。

2011-03-09

设计模式,微软金牌讲师推出,相当的精彩呀,不能错过呀。4

设计模式,微软金牌讲师推出,相当的精彩呀,不能错过呀。设计模式,微软金牌讲师推出,相当的精彩呀,不能错过呀。C##描述

2011-01-15

设计模式,微软金牌讲师推出

设计模式,微软金牌讲师推出,相当的精彩呀,不能错过呀。设计模式,微软金牌讲师推出,相当的精彩呀,不能错过呀。

2011-01-15

设计模式,微软金牌讲师推出

讲的很好很好,很精辟很有道路,有中国的道,传达术,应用的很好,是入门的好教程。设计模式,微软金牌讲师推出

2011-01-15

设计模式,微软金牌讲师

采用的C#描述,讲解非常清晰,对大家帮助很大。值得下载。。微软高级讲师分享。。。

2011-01-15

非常好的设计模式资料

采用的C#描述,讲解非常清晰,对大家帮助很大。值得下载。。微软高级讲师分享。。。

2011-01-15

windows VOIP工具

通过该工具可以windows进行打voip通话

2010-04-25

COM组件

通过DCOM实现服务器客服端通信程序!

2007-11-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除