文章列表
 
您正在查看 "c/c++" 分类下的文章

2009年08月24日 星期一 20:58

函数指针,就是指向函数的指针。在C++中,函数指针一般是指全局命名空间中的函数指针,它与类成员函数指针有一点不同。

在类中,首先类是具有类域的。一个指向类的成员函数的指针,不同于函数指针,只是声明的形式不同,基本思想还是一致的。使用这些指针对操作可能会带来很大的方便。

另外,对于静态类来说,静态类没有this指针,静态类成员函数指针是普通函数指针,因为静态类成员函数是属于类的全局函数。

函数指针

先看一下函数指针的定义及其使用。

 
2009年08月23日 星期日 22:42

在C++类中,存在隐含的this指针,在需要的时候是可以显式使用this指针的。在某些情况下必须使用this指针,而在某些时候使用this指针对操作可能会带来很大的方便。

当初始化一个类的实例,即产生一个类对象,这个类对象就是通过this指针来维护自己的数据成员的拷贝,从而不会越界操作该类的其它的类对象,而造成数据管理的混乱。

在定义类的时候,在某个成员函数中需要访问指定的成员(这里不针对静态类成员),可以直接使用类成员,而没有使用this指针,实际上已经隐含在使用this指针,只是没有显式使用,这样使用

 
2009年08月23日 星期日 22:06

在C++中,对于类可以具有静态成员和静态函数,他们都是用static关键字修饰。

首先需要知道的是,为什么要使用静态成员。

对于非静态成员,一定是每个类对象持有该非静态数据成员的一份拷贝,如果某个非静态数据成员的值是固定的,比如利率、价格(对于同一种商品)等等,事实上根本无需让每个类对象都拷贝一份该类的该数据成员,如果该类的对象数量很大时,在一定程度上冗余存储了该数据成员,造成存储空间的浪费。

对于静态成员来说,通常如果一个类所具有的数据成员对于类的每个实例来说都是一样的,也就

 
2009年08月23日 星期日 21:04

在学习C++类的定义之前,先要知道一个类的成员与成员函数所具有的访问权限问题,也就是通常说的访问修饰符。

C++中,对类的成员和成员函数进行访问权限的设置时,具有默认、public、private和protected四种访问修饰符,简单介绍如下:

默认情况下,不加任何修饰,它表示该类的成员或成员函数是私有的,即与private等价。

public是公共访问修饰符,它所修饰的成员或者成员函数,不仅该类内部的其他成员函数可以访问由public修饰的成员或者成员函数,而且不属于该类的其他类的成员或者成员函数都可

 
2009年08月22日 星期六 14:59

C++标准库提供了函数模板机制的支持,可以通过模板来生成不同类型的函数的实例,只需要对函数模板中的类型参数进行替换,替换成已经存在的类型,就能对同一函数的不同类型进行调用,完成函数定义的功能。

函数模板的定义

函数模板的定义可以使用关键字template,template关键字放在函数模板定义的最前面,其后面是用尖括号(<>)括起来得到的模板参数列表,其中各个参数可以是模板类型参数,也可以是非模板类型参数(相当于常量),然后就是函数声明部分,和普通的函数的声明是一样的,不

 
2009年08月21日 星期五 14:10

C++重载(overloading)和其它编程语言中的重载概念基本上是一致的。C++重载分为操作符重载与函数重载。

操作符重载

操作符重载使用关键字operator。

操作符重载能够使同一个操作符具有不同的操作含义,满足更广泛范围的操作需要。

例如,对于一个容器类MyList,你可以重载操作符+号,重载的含义是对两个MyList使用+执行相加,表示将两个MyList的内容合并到一起,等等。

后面学习中单独对操作符重载举例。

函数重载

函数重载都是为了能够共

 
2009年08月20日 星期四 21:13

一门编程语言,如果你连它存在哪些数据类型都不了解,还谈什么使用语言来编程呢。经过整理,我把C++相关的数据类型,及其对应的基本修饰符,都列举出来。

第一部分:数据类型

1、基本类型

基本类型如下所示:


类型标识符

 
2009年08月09日 星期日 18:01
据考察,没有一种命名规则可以让所有的程序员赞同,程序设计教科书一般都不指定命名规则。命名规则对软件产品而言并不是“成败悠关”的事,我们不要化太多精力试图发明世界上最好的命名规则,而应当制定一种令大多数项目成员满意的命名规则,并在项目中贯彻实施。

下面分别按照“共性规则”、“W简单的indows应用程序命名规则”、和“简单的Linux应用程序明命名规则”这三个分类来讲述C++的命名规则:


1.1 共性规则

 
2009年03月31日 星期二 1:36

Socket编程实例

   代码实例中的服务器通过socket连接向客户端发送字符串"Hello, you are connected!"。只要在服务器上运行该服务器软件,在客户端运行客户软件,客户端就会收到该字符串。

   该服务器软件代码如下:

#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <sys/w

 
2009年03月31日 星期二 1:06

什么是Socket

   Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。要学Internet上的TCP/IP网络编程,必须理解Socket接口。

   Socket接口设计者最先是将接口放在Unix操作系统里面的。如果了解Unix系统的输入和输出的话,就很容易了解Socket了。网络的Socket数据传输是一种特殊的I/O,Socket也是一种文件描述符。Socket也具有一个类似于打开文件的函数调用Socket(),该函数返回一个整型的Socket描述符,随后的连接建

 
2008年10月26日 星期日 11:13

本来想研究一下Minix操作系统的源代码,但是因为刚刚从Java转过来,有很多东西感觉不是很熟悉,而且感触最深刻的就是,曾经学过的那个C语言根本一点没有掌握,此时此刻C语言基础完全成为0了。

在Minix中,遇到一个_PROTOTYPE的定义,其实研究了一下,感觉就是C语言中的预定义,一种我从没有见过的宏的定义方式(仅仅对我而言)。

我知道的,宏定义可以有两种方式:一种是不带参数的宏,一种是带参数的宏。第一种就不说了,定义常量。第二种虽然比较复杂一些,但是基本上是那些用带参数的宏名来替换一个带参数的字符

 
2008年10月26日 星期日 10:30

C语言中,定义结构的时候,结构内部一定是变量列表,不能包含方法,如下所示:

#include <stdio.h>

struct date{
int year;
int month;
int day;
};
struct student{
int number;

 
2008年10月26日 星期日 9:42

1、内存分配方面:

    堆:一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式是类似于链表。可能用到的关键字如下:new、malloc、delete、free等等。

    栈:由编译器(Compiler)自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。

2、申请方式方面:

    堆:需要程序员自己申请,并指明大小。在c中用malloc函数,如char* p1 = (char *)malloc(10);在

 
2008年10月06日 星期一 21:35

来自:网易博客 http://afericazebra.blog.163.com/blog/static/30050408200801494053866/

1.const的用法:

为什么使用const?

采用符号常量写出的代码更容易维护;

指针常常是边读边移动,而不是边写边移动;

许多函数参数是只读不写的。

const最常见用途是作为数组的界和switch分情况标号(也可以用枚举符代替)

用法1:常量

取代了C中的宏定义,声明时必须进行初始化。const限制了常量的

 
2008年09月25日 星期四 13:31

主要学习如下gcc选项:

-C、-M、-MM、-MD、-MMD、编译优化选项(-O0、-O1、-O2、-O3)、-Wall


8、-C 选项

在预处理的时候,不删除注释信息,一般和-E一起使用。有时候分析程序,比较方便。

比如,加上注释的这段程序HelloWorld.c程序如下
 
   
 
 
文章存档
 
     
 
最新文章评论
  

这个不错,很详细,对于我们初学spring框架的人不错的帮助,感谢楼主分享
 

最近用,学习了~
 

[表情]
 

[表情]
 

对于Ubuntu用户,有一个简单的办法: 将该用户添加到admin用户组,即 usermod -G adm
   
帮助中心 | 空间客服 | 投诉中心 | 空间协议
©2012 Baidu