Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

C++入门基础:用传引用给const取代传值

C++入门基础:用传引用给const取代传值

缺省情况下,C++ 以传值方式将对象传入或传出函数(这是一个从 C 继承来的特性)。除非你特别指定其它方式,否则函数的参数就会以实际参数(actual argument)的拷贝进行初始化,而函数的调用者会收到函数返回值的一个拷贝。这个拷贝由对象的拷贝构造函数生成。这就使得传值(pass-by-value)成为一个代价不菲的操作。例如,考虑下面这个类层级结构: class Person { public: Person(); // parameter...
Linux下c++编程与kdevelop的环境配置

Linux下c++编程与kdevelop的环境配置

KDevelop是一个支持多程序设计语言的集成开发环境。它运行于Linux和其它类unix环境。KDevelop本身不包含编译器,而是调用其它编译器来编译程序。1.打开新立得软件包管理器2.查找KDevelop,在结果中当然是勾选KDevelop,还有KDevelop系列里面那个带"-dev"后缀的包,当然你可以不勾3.装好前面的包后安装如下的包:automakeautoconfg++libtoolcmake这些装了之后基本就可以运行了,但是你想看到输出的...
Linux在执行信号处理的过程中对堆栈的处理

Linux在执行信号处理的过程中对堆栈的处理

今天, 写代码的时候碰到了一点UNIX信号相关的问题, 于是晚上就查阅了Linux信号实现的机制, 大体上有个总结:执行一个信号处理程序是件相当复杂的任务,因为在用户态和内核态之间切换时需要谨慎地处理栈中的内容。 信号处理程序是用户态进程所定义的函数,并包含在用户态的代码段中。handle_signal( )函数运行在内核态而信号处理程序运行在用户态,这就意味着在当前进程恢复 “正常”执行之前,它必须首先执行用户态的信号处理程序。此外,当内核打算恢复进程的...
Linux下Socket编程的端口问题

Linux下Socket编程的端口问题

最近在开发一个Linux下的聊天软件,每次修改了源代码并再次编译运行时,常遇到下面的地使用错误:Cann"t bind server socket !: Address already in use虽然用Ctrl+C强制结束了进程,但错误依然存在,用netstat -an |grep 5120和ps aux |grep 5120都还能看到刚才用Ctrl+C“强制结束”了的进程,端口还是使用中,只好每次用kill结束进程,很是麻烦。昨天晚上无意间浏览到IBM...
成功实现Linux下Socket编程中用send发送结构体

成功实现Linux下Socket编程中用send发送结构体

Linux网络通信 Linux下多客户端聊天软件 Linux程序设计 Linux socket send and recevie structure最近在开发一个Linux下的聊天软件,好久没有做C语言的开发了,感觉到很多东西已经生疏了,这下又碰到用Socket传递结构体的问题,google了一下,发现也有不少朋友遇到同样的问题,所以就打算写出自己的解决办法,跟大家分享。Socket中的send函数可以发送字符串,但不能直接发送结构体,因此在发送端先把结构...
JADE中agent应用的关键

JADE中agent应用的关键

要注意:为什么我们在调用web服务或者其他应用服务的时候,推荐使用agent来做代理。这个问题是否明白是解决多agent之间交互的关键。要知道,agent之间的通信采用异步信息传输机制。这一点十分重要。比如,你所接收不同消息模板的消息可能会在不同的时间到达,并不一定是先发送的消息先接收到。又比如,你声明了一个AID的数组,用于存放所搜索到的能提供不同服务的agent的AID身份。然而,这样做,你就无法准确定位你获取的服务agent是在数组中的哪一个位置。因...
JAVA读取XML文件详细解析

JAVA读取XML文件详细解析

1.有很多时候我们需要将相关动态的信息保存到XML文件中去,那么我们就可以动态输入相关信息。特别是针对数据库方面的操作的时候就非常地灵活。那我现在假如项目中的操作数据库的包为model里面存放了我们的XML文件db.xml现在来看看如何解析出来相关的数据来调用。 第一个类:package model;import org.xml.sax.Attributes;import org.xml.sax.helpers.DefaultHandler;import...
Linux中.a,.la,.o,.so文件的意义和编程实现

Linux中.a,.la,.o,.so文件的意义和编程实现

Linux下文件的类型是不依赖于其后缀名的,但一般来讲:.o,是目标文件,相当于windows中的.obj文件.so 为共享库,是shared object,用于动态连接的,和dll差不多.a为静态库,是好多个.o合在一起,用于静态连接.la为libtool自动生成的一些共享库,vi编辑查看,主要记录了一些配置信息。可以用如下命令查看*.la文件的格式 $file *.la *.la: ASCII English text所以可以用vi来查看其内容。@@@...
Java入门之深入理解嵌套类和内部类

Java入门之深入理解嵌套类和内部类

一、什么是嵌套类及内部类? 可以在一个类的内部定义另一个类,这种类称为嵌套类(nested classes),它有两种类型: 静态嵌套类和非静态嵌套类。静态嵌套类使用很少,最重要的是非静态嵌套类,也即是被称作为 内部类(inner)。嵌套类从JDK1.1开始引入。其中inner类又可分为三种: 其一、在一个类(外部类)中直接定义的内部类; 其二、在一个方法(外部类的方法)中定义的内部类; 其三、匿名内部类。 下面,我将说明这几种嵌套类的使用及注意事项。 二...
Java反射机制系列基础知识

Java反射机制系列基础知识

Java 反射机制是指Java程序可以在执行期载入,探知,使用编译期间完全未知的classes.这句话可能有点难以理解,我们可以通过一个例子来看。在Java程序中我们经常会用到这样一条语句来创建一个对象。Date date = new Date();在这条语句中date的类型(Java.util.Date)在编译时 已经确定。那么,有没有办法使我们把对象类型的确定时间由编译转到运行,答案是肯定的。这就是Java反射机制所提供的便利。而且它不单单可以生成对象...
C语言中的枚举类型和在Linux系统中的作用

C语言中的枚举类型和在Linux系统中的作用

[点评:枚举一般用于定义一个集合,如色彩,星期等等,他提供了更加贴近实际的对对象的描述,方便了编程工作.]下面简单介绍下C语言中的枚举类型和在Linux系统中的作用。枚举是一个被命名的整型常数的集合, 枚举在日常生活中很常见。例如表示星期的SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY,SATURDAY, 就是一个枚举。枚举的说明与结构和联合相似, 其形式为:enum 枚举名{标识符[=整型常数],...
简述JAVA反射机制的应用

简述JAVA反射机制的应用

开发的时候有时候会碰到这样的情况,我们在写程序的时候并不知道需要调用某个对象的哪个方法,只有程序运行后,我们才能够知道。或许我们需要根据客户端传过来的某个String参数的值来判断我们应该执行哪个方法。在这种情况下JAVA的反射执行就可以帮上忙了。下面是我做的一个简单的测试代码,提供给大家做个参考。 import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Met...
关于pthread_join函数与Linux线程(ref)

关于pthread_join函数与Linux线程(ref)

pthread_join使一个线程等待另一个线程结束。代码中如果没有pthread_join主线程会很快结束从而使整个进程结束,从而使创建的线程没有机会开始执行就结束了。加入pthread_join后,主线程会一直等待直到等待的线程结束自己才结束,使创建的线程有机会执行。所有线程都有一个线程号,也就是Thread ID。其类型为pthread_t。通过调用pthread_self()函数可以获得自身的线程号。下面说一下如何创建一个线程。通过创建线程,线程将...
Java语言学习细节之构造方法调用浅谈

Java语言学习细节之构造方法调用浅谈

在学习JAVA过程中,必须要了解这些基本的东西才能对读代码少些困惑,而这些细节是新手必须注意的。 总结:初始化的顺序为:先初始化父类的静态代码——>初始化子类的静态代码——>创建实例时,如果不创建实例,则后面的不执行)初始化父类的非静态代码——>初始化父类构造函数——>初始化子类非静态代码——>初始化子类构造函数子类继承父类会先初始化父类,调用父类的构造函数。 子类的构造方法的第一条语句就是调用父类的没有参数的构造方法,如果...
深入体会Ruby语言中的String类型

深入体会Ruby语言中的String类型

Ruby语言中的String是mutable的,不像Java、C#中的String是immutable的。比如:str1="abc"str2="abc" 在Java中,对于字面量的字符串,jvm内部维持一张表,因此如果在Java中,str1和str2是同一个String对象。而在Ruby中, str1和str2是完全不同的对象。同样,在java中对于String对象的操作都将产生一个新的对象,而Ruby则是操纵同一个对象,比如:str="abc"str.c...
<< 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 >>