C++对象数组的创建 2016年10月16日 9 阅读 使用一维指针创建对象数组:#include<iostream> #include<string> usingnamespacestd;intnextStudentID=1;classStudentID{public:StudentID(){cout<<"StudentID()"<<endl;value=nextStudentID++;cout<<"value:"<<value<&...
C++构造函数和拷贝构造函数详解 2016年10月16日 9 阅读 构造函数、析构函数与赋值函数是每个类最基本的函数。它们太普通以致让人容易麻痹大意,其实这些貌似简单的函数就象没有顶盖的下水道那样危险。每个类只有一个析构函数和一个赋值函数,但可以有多个构造函数(包含一个拷贝构造函数,其它的称为普通构造函数)。对于任意一个类A,如果不想编写上述函数,C++编译器将自动为A 产生四个缺省的函数,例如:A(void); // 缺省的无参数构造函数A(const A &a); // 缺省的拷贝构造函数~A(void); /...
Linux网络编程:获取本机的公网IP 2016年10月16日 9 阅读 Linux网络编程:获取本机的公网IP[cpp]#include<stdio.h>#include<string.h> #include<sys/types.h> #include<errno.h> #include<sys/stat.h> #include<fcntl.h> #include<unistd.h> #include<stdlib.h> #incl...
mini2440上DS18B20的驱动程序(含简单测试) 2016年10月16日 9 阅读 ds18b20_drv.c[cpp] #include<linux/init.h> #include<linux/module.h> #include<linux/delay.h> #include<linux/kernel.h> #include<linux/moduleparam.h> #include<linux/init.h> #include<linux/types.h...
mini2440上LEDS的驱动程序(含测试程序) 2016年10月16日 9 阅读 leds_drv.h[cpp] #ifndef_MEMDEV_H_ #define_MEMDEV_H_ #include<linux/ioctl.h> /*定义幻数*/#defineMEMDEV_IOC_MAGIC"k" /*定义命令*/#defineMEMDEV_IOC_ON_IO(MEMDEV_IOC_MAGIC,1) #defineMEMDEV_IOC_OFF_IO(MEMDEV_IOC_MAGIC,2) #defineMEMDEV_IO...
C++学习之友元函数 2016年10月16日 9 阅读 为什么要引入友元函数?因为我们不能在类的外部访问类的私有变量。传统的访问方法:[cpp] #include<iostream> #include<string> usingnamespacestd;classaa{private:floata;floatb;public:float&aaa(){return(a);}float&bbb(){return(b);}};aasum(aaa,aab){aac;c.aaa()...
C++中组合类的初始化:冒号语法(常数据成员和引用成员的初始化) 2016年10月16日 9 阅读 #include<iostream> #include<string> usingnamespacestd;classStudent{intsemesHours;floatgpa;public:Student(inti){cout<<"constructingstudent. ";semesHours=i;gpa=3.5;}~Student(){cout<<"~Student ";}};classTeache...
Linux编译错误:‘cout’在此作用域中尚未声明 2016年10月16日 9 阅读 初学者在Linux中进行C++编程时会遇到“‘cout’在此作用域中尚未声明”的错误。很多人会觉得很奇怪,我是严格按照C++语法来写的,为什么还会在编译时提示“‘cout’在此作用域中尚未声明”的错误呢?下面来详细分析一下错误原因,通过分析来得到问题解决办法。首先我们以一段代码为例。如果我们将这个代码保存为hello.cpp在终端输入g++ hello.cpp -o hello编译过很中肯定会报“‘cout’在此作用域中尚未声明”错误。错误原因:#incl...
C++里面的引用和指针 2016年10月16日 9 阅读 形参和实参结合规则:形参为引用时,形参(引用)接收实参(对象)的地址。或表述为:形参为引用时,凡遇到形参(引用)的地方,全部用实参(对象)来代替。 传递引用给函数与传递指针的效果相同。但是可读性比指针传递好(传值方式的调用与可读性,性能却强于传值方式),参数结合符合初始化标准,可使用引用传递从函数返回多个值(指针和引用都可以)。代码例子:[cpp] #include<iostream> usingnamespacestd;voidswap(in...
Linux网络编程:read和write函数的包装 2016年10月16日 9 阅读 #include<unistd.h> #include<errno.h> ssize_treadn(intfd,void*buf,size_tcount){char*strtmp;ssize_treval,realcount=0;strtmp=(char*)buf;while(count>0){reval=read(fd,strtmp,count);if(reval<0)if(errno==EINTR)continue;...
C语言:指针参数的传递 2016年10月16日 9 阅读 指针是C语言的精华,也是C语言的难点!今天写程序,就犯了个很SB的指针错误。害我忙乎了大半天。我在这里把问题抽象出来,给大家做个借鉴!避免以后也犯同样的错误!#include<stdio.h> #include<stdlib.h> #include<string.h> voidfunc1(char*ptr){ptr[0]=55;printf("addressofptris%p ",(unsigned)ptr);print...
Linux网络编程:读取txt文本数据 2016年10月16日 9 阅读 单行作为索引,双行保存有数据,代码如下[cpp] #include<fcntl.h> #include<stdio.h> #include<stdlib.h> #include<string.h> #defineMAX_DB_SIZE1000 intdatabase[MAX_DB_SIZE];constchar*paramfile="parameter.txt";intget_sum_line(constch...
Linux网络编程:线程池的使用 2016年10月16日 9 阅读 一、什么是线程池应用程序可以有多个线程,这些线程在休眠状态中需要耗费大量时间来等待事件发生。其他线程可能进入睡眠状态,并且仅定期被唤醒以轮循更改或更新状态信息,然后再次进入休眠状态。为了简化对这些线程的管理,.NET框架为每个进程提供了一个线程池,一个线程池有若干个等待操作状态,当一个等待操作完成时,线程池中的辅助线程会执行回调函数。线程池中的线程由系统管理,程序员不需要费力于线程管理,可以集中精力处理应用程序任务。线程池是一种多线程处理形式,处理过程中将...
mini2440上SQLite操作 2016年10月16日 9 阅读 (1)创建数据库文件test.db[root@mini2440 /]#cd /home/www#sqlite3 test.dbSQLite version 3.7.7.1 2011-06-28 17:39:05Enter ".help" for instructionsEnter SQL statements terminated with a ";"sqlite>(2)创建表sqlite> create table students(id i...
mni2440数据库SQLite编程练习 2016年10月16日 9 阅读 SQLite在2440上的移植很简单,这里就不多说了,我们直接进入正题:SQLite的进阶练习。前一篇文章(见 http://www.linuxidc.com/Linux/2012-02/54689.htm)已经试过在mini2440终端上直接用SQL语句操作数据库,本节我们将在C语言中嵌入SQL语句。一:我们需要准备一个数据库文件(.db文件),我是用Excel和SQLite Developer一起生成的。步骤如下:1.使用Excel函数,我们可以很方便...
mini2440上Apache php的socket通信 2016年10月16日 9 阅读 server.php[php] <?php//确保在连接客户端时不会超时 set_time_limit(0);//设置IP和端口号 $address="127.0.0.1";$port=2009;//调试的时候,可以多换端口来测试程序! //创建一个SOCKET if(($sock=socket_create(AF_INET,SOCK_STREAM,SOL_TCP))<0){echo"socket_create()失败的原因是:".socket...
Android按键学习:RadioButton 2016年10月16日 9 阅读 源程序来自网络,做了简单的美化和修改。HelloActivity.javapackagesg131971.hello; importAndroid.app.Activity; importandroid.os.Bundle; importandroid.view.Gravity; importandroid.widget.RadioButton; importandroid.widget.RadioGroup; importandroid.widget....
ARM支持的数据宽度 2016年10月16日 9 阅读 ARM 处理器支持6种数据类型;8位有符号和无符号字节。 (char, unsigned char)16位有符号和无符号半字,它们以2字节的边界对准。(short int, unsigned short int)32位有符号和无符号字,它们以4字节的边界对准。(int, unsigned int)ARM指令全是以32bit的字并且必须是字对准的。Thumb指令是半字而且必以两字节的边界对准的。#include<stdio.h> #include...
单机上多JVM同步控制的一种方法 2016年10月16日 9 阅读 在一个JVM进程中的同步控制,无非就是线程之间的同步问题,但要想在多JVM进程之间实现访问本地系统资源的同步,却并非JVM所擅长的了。当然,若依赖第三方Master主控进程,这个问题还是可以解决的。多于简单的系统而言,这样做无疑会增加系统的复杂性,从而导致整个系统的不稳定性和潜在的不安全。所以,下面就如何在单机上实现多JVM进程之间的同步控制,给出了一个简单的方法。JDK 1.4的文件锁"file locking"允许你以文件为共享资源,对访问进行同步化处...
Java NIO类库Selector机制解析 2016年10月16日 10 阅读 一、 前言自从J2SE 1.4版本以来,JDK发布了全新的I/O类库,简称NIO,其不但引入了全新的高效的I/O机制,同时,也引入了多路复用的异步模式。NIO的包中主要包含了这样几种抽象数据类型:?Buffer:包含数据且用于读写的线形表结构。其中还提供了一个特殊类用于内存映射文件的I/O操作。 ?Charset:它提供Unicode字符串影射到字节序列以及逆映射的操作。 ?Channels:包含socket,file和pipe三种管道,都是全双工的通道。...