09 2012 档案

摘要://第二十章友元类与嵌套类 1友元类//与函数相同,类也可以作为另一个类的友元类,这样,另一个类的私有及其保护成员都会暴露给友元类,友元类可以通过自己的访问来访问另一个类的所有成员,但是,这并不代表另一个类可以访问它的友元类的所有成员/*#include <iostream>using namespace std;//首先定义TV类,也就是电视机类class TV{public: friend class Tele; //定义一个友元函数Tele; TV():on_off(off),volume(21),channel(3),mode(tv){} ~TV(){}private: e 阅读全文
posted @ 2012-09-30 15:22 简单--生活 阅读(283) 评论(0) 推荐(0) 编辑
摘要://第二十章友元类与嵌套类 2嵌套类//C++不光可以包含对像,还可以包含类,我们把C++所包含的类叫做嵌套类//不过,包含对像与嵌套类有着本质的不同,包含对像只是将另一个类的对像作为该类的成员,而嵌套类似则是在该类中定义了一种新的类型,这个类型只能在该类中使用#include <iostream>using namespace std;class rectangle{public: //这里直接在rectangel的公有部分定义了一个类 class point { public: void setX(int x){ itsx = x;} void setY(int y){ its 阅读全文
posted @ 2012-09-30 15:22 简单--生活 阅读(410) 评论(0) 推荐(0) 编辑
摘要:// 12 什么时候使用私有继承,什么时候使用包含/*既然私有继承与包含的作用相同,为什么还要使用包含量呢?这是因为对于程序员来说,包含易于理解,我们可以显式地在包含类中定义被包含类的对像,然后用该对像调用被包含类的成员函数,这会让程序员看上去非常清淅易懂,但私有继承私不这么直观,它使类之间的关系变得更加抽像,并且很多情况下,这种关系比较抽像和复杂,程序员必须处理很多继承带来的问题,比如说派生类与基类的函数重名问题,也就是我们前面讲过的两义性,或者继承一些不该继承的方法或变量,经如说派生类的某个基类上还有基类,那么这个基类的方法也会延续到后面的所有派生类中显然,作为一个位地继承层次之外的类,包 阅读全文
posted @ 2012-09-30 10:24 简单--生活 阅读(1598) 评论(0) 推荐(0) 编辑
摘要:// 11图书 药品管理系统/*#include <iostream>#include <limits>using namespace std;class Date{public: Date(int n, float p):number(n),price(p){} float GetPrice()const{ return price; } int GetNumber()const{ return number;} virtual void print()const = 0; //抽像类,纯虚函数 virtual ~Date(){} private: int numbe 阅读全文
posted @ 2012-09-30 10:23 简单--生活 阅读(306) 评论(0) 推荐(0) 编辑
摘要://19 利用私有继承来实现代码重用//我们还有一种方法来实现这种包含式的代码重用,那就是私有继承,派生类从基类私有继承后,其类的公有成员和保护成员在派生类中都是私有成员,私有成员成为不可访问的成员,这意味着我们必须在派生类中定义一个公有的成员函数,才能访问从基类中继承而来的成员函数,这与一个类的私有区域中包含另一个类的对像是实现思想是一致的/*#include <iostream>#include <limits>using namespace std;class Date{public: Date(int n, float p):number(n),price(p) 阅读全文
posted @ 2012-09-30 10:23 简单--生活 阅读(191) 评论(0) 推荐(0) 编辑
摘要:/*#include <iostream>using namespace std;//定认枚举形常量enum{small,large, same};class Date{public: Date(int i):date(i){} ~Date(){} int compare(const Date&); void print(){ cout<<date<<endl;}private: int date;};int Date::compare(const Date& two){ if(date < two.date) return small 阅读全文
posted @ 2012-09-30 10:22 简单--生活 阅读(245) 评论(0) 推荐(0) 编辑
摘要:// 8 链表类Node//为了这个数据类Date以后,接下来还需要一个链表类Node,该类拥有一个插入函数insert和一个输出函数print,由于插入新节点和输出节点的数据这两个或能是所有链表类必备的,所以将它们声明为虚函数,以提醒它的子类必须实现这两个虚函数的功能/*#include <iostream>using namespace std;//定认枚举形常量enum{small,large, same};class Date{public: Date(int i):date(i){} ~Date(){} int compare(const Date&);priva 阅读全文
posted @ 2012-09-30 10:21 简单--生活 阅读(636) 评论(0) 推荐(0) 编辑
摘要:// 9标签类Label/*//我们知道一个链表由标签,头节点,中间节点和尾节点组成,标签中保存着头节点的地址,头节点的next指针指向中间节点,中间节点的next指针指向了尾节点,因为我们可以将标签做成一个label类,该类负责创建和维护头节点#include <iostream>using namespace std;//定认枚举形常量enum{small,large, same};class Date{public: Date(int i):date(i){} ~Date(){} int compare(const Date&);private: int date;} 阅读全文
posted @ 2012-09-30 10:21 简单--生活 阅读(211) 评论(0) 推荐(0) 编辑
摘要://10头节点类,中间节点类和尾节点类/*#include <iostream>using namespace std;//定认枚举形常量enum{small,large, same};class Date{public: Date(int i):date(i){} ~Date(){} int compare(const Date&); void print(){ cout<<date<<endl;}private: int date;};int Date::compare(const Date& two){ if(date < two 阅读全文
posted @ 2012-09-30 10:21 简单--生活 阅读(516) 评论(0) 推荐(0) 编辑
摘要:// 7 Data类//因此我们在写一个链表时,首先要考虑这一点,我们知道链表的作用是将无序的数据按一定的次序排列起来,比如说链表中每一个节点均可保存一个或多个数据,我们将各个节点排列好顺序,那么所有的数据自然也就排好了顺序,然后我们就可通过操作节点来实现对数据的操作,比如添加,删除,和修改等等//但是很多时候,为了提高代码的重复利用率和健壮性,我们需要将代码与数据分离,比如说我们将图书管理系统的数据库部分分做成一个类,并将它包含到其他类中,这样我们做的数据类,即图书管理系统的数据模块,可以被链表类修改,添加和删除等操作,但对于其他类是封闭的,同时链表类代码的修改不会景响到数据库,实现了代码与 阅读全文
posted @ 2012-09-30 10:20 简单--生活 阅读(189) 评论(0) 推荐(0) 编辑
摘要:http://php.net/manual/en/book.imagick.php 类参考文档PHP中Imagick类的使用PHP中Imagick类,提供了比GD库函数更为方便和强大的图片处理功能。由于工作关系研究了一阵,略有收获,不敢独乐,特与大家分享。使用Imagick类,需要PHP安装imagemagick扩展模块。<?php/** * 对比度处理 * @param bool $type 表示增加或减少对比度,逻辑型,true:增加; false:减少 * @param bool $apply 表示作用区域,逻辑型,true:局部作用; false:全局作用 * @par... 阅读全文
posted @ 2012-09-27 17:09 简单--生活 阅读(8292) 评论(0) 推荐(0) 编辑
摘要:1 下载ImageMagick打开http://imagemagick.org/script/binary-releases.php#windows下载最新的版本,目前的版本是ImageMagick-6.5.4-2-Q16-windows-dll.exe现在的静态版本能够很好的在各个平台上运行,但是他们却很难懂,因此您应该下载一个动态的版本。如果你的系统/电脑支持16位色,那么你应该使用Q16版本(还有一个是8位的版本),这两者的区别我们将会在下面解释。对我自己来说,最近的一个版本在我的电脑上不能够很好的运行,所以我使用一些老版本,ImageMagick-6.4.2-7-Q16-windows 阅读全文
posted @ 2012-09-27 15:15 简单--生活 阅读(4262) 评论(0) 推荐(0) 编辑
摘要:/*//5 包含对系统的消耗//由于book类的数据成员中包含量了3个String类的对像,因此在创建一个book类对像时也就不可避免的创建3个String类的对像,本节我们通过在String类和book类的构造和析构函数中添车输出语句演示这种消耗#include "String.h"class Book{public: Book(); ~Book(){ cout<<"Book类的析构函数执行...."<<endl;} Book(char*, char*, char*, float); //不能修改返回值,在函数内也不能修改,也不 阅读全文
posted @ 2012-09-24 23:59 简单--生活 阅读(195) 评论(0) 推荐(0) 编辑
摘要:// 6按别名传递book对像//由于在创建一个book类对像时会创建3个String类对像,因此,假如我们按值传递一个book类对像给某个函数,那么对系统的消耗是相当可观的,接下来的例子将演示按值与按别名传递book类对像的不同#include "String.h"class Book{public: Book(); ~Book(){ cout<<"Book类的析构函数执行...."<<endl;} Book(char*, char*, char*, float); //不能修改返回值,在函数内也不能修改,也不想调用复制构造函数 阅读全文
posted @ 2012-09-24 23:59 简单--生活 阅读(173) 评论(0) 推荐(0) 编辑
摘要:// 4 为图书重载GetAuthor函数//本节我们再创建一本图书,这本书是由两个合写的,为了记录这两个人的姓名,我们需要定义一个字符串#include "String.h"class Book{public: Book(); Book(char*, char*, char*, float); //不能修改返回值,在函数内也不能修改,也不想调用复制构造函数,按地址传递 const String& GetTitle()const{ return title; } const String& GetAuthor()const{ return author; } 阅读全文
posted @ 2012-09-24 23:40 简单--生活 阅读(349) 评论(0) 推荐(0) 编辑
摘要:#include <iostream>using namespace std;class String{public: String(); //默认的构造函数 ~String(){ delete []str; len=0; //cout<<"析构函数执行"<<endl; } String(const char*const ch); //构造带值的string int getlen()const { return len;} //读取长度 //const char *getstr()const{ return str;} //读取字符串 / 阅读全文
posted @ 2012-09-24 23:39 简单--生活 阅读(191) 评论(0) 推荐(0) 编辑
摘要:// 38总结#include <iostream>using namespace std;class String{public: String(); //默认的构造函数 ~String(){ delete []str; len=0; cout<<"析构函数执行"<<endl; } String(const char*const ch); //构造带值的string int getlen()const { return len;} //读取长度 //const char *getstr()const{ return str;} //读取 阅读全文
posted @ 2012-09-24 22:37 简单--生活 阅读(241) 评论(0) 推荐(0) 编辑
摘要:// 35用重载比较运算符实现字符串的比较/*#include <iostream>using namespace std;class String{public: String(); //默认的构造函数 String(const char*const ch); //构造带值的string int getlen()const { return len;} //读取长度 //const char *getstr()const{ return str;} //读取字符串 //重载输出函数 friend ostream&operator<<(ostream & 阅读全文
posted @ 2012-09-24 22:36 简单--生活 阅读(1562) 评论(0) 推荐(0) 编辑
摘要:// 36为string类添加字符串的相加功能/*#include <iostream>using namespace std;class String{public: String(); //默认的构造函数 ~String(){ delete []str; len=0; cout<<"析构函数执行"<<endl; } String(const char*const ch); //构造带值的string int getlen()const { return len;} //读取长度 //const char *getstr()const{ 阅读全文
posted @ 2012-09-24 22:36 简单--生活 阅读(1173) 评论(0) 推荐(0) 编辑
摘要:// 33用重载输出运算符函数实现字符串的输出/*#include <iostream>using namespace std;class String{public: String(); //默认的构造函数 String(const char*const ch); //构造带值的string int getlen()const { return len;} //读取长度 //const char *getstr()const{ return str;} //读取字符串 //重载输出函数 friend ostream&operator<<(ostream &am 阅读全文
posted @ 2012-09-24 22:35 简单--生活 阅读(691) 评论(0) 推荐(0) 编辑
摘要:// 34用重载输入运算符函数实现字符串的输入/*#include <iostream>using namespace std;class String{public: String(); //默认的构造函数 String(const char*const ch); //构造带值的string int getlen()const { return len;} //读取长度 //const char *getstr()const{ return str;} //读取字符串 //重载输出函数 friend ostream&operator<<(ostream &am 阅读全文
posted @ 2012-09-24 22:35 简单--生活 阅读(764) 评论(0) 推荐(0) 编辑
摘要:// 30限制数组越界// 该函数有一个参数即数组的下载length, 下标值length会传递到函数体中进行判断,假如下标超过数组的长度,那么返回数组长度-1,也就是最后一个可见字符,假如不超过数组长度,那么返回该下标的数组元素/*#include <iostream>using namespace std;class String{public: String(); //默认的构造函数 String(const char*const ch); //构造带值的string int getlen()const { return len;} //读取长度 const char *ge 阅读全文
posted @ 2012-09-24 22:32 简单--生活 阅读(237) 评论(0) 推荐(0) 编辑
摘要://31用复制构造函数实现字符串的初始化/*#include <iostream>using namespace std;class String{public: String(); //默认的构造函数 String(const char*const ch); //构造带值的string int getlen()const { return len;} //读取长度 const char *getstr()const{ return str;} //读取字符串 //这里是可以修改的 char &operator[](unsigned short int length); c 阅读全文
posted @ 2012-09-24 22:32 简单--生活 阅读(1284) 评论(0) 推荐(0) 编辑
摘要:// 32用重载赋值运算符函数实现字符串赋值功能/*#include <iostream>using namespace std;class String{public: String(); //默认的构造函数 String(const char*const ch); //构造带值的string int getlen()const { return len;} //读取长度 const char *getstr()const{ return str;} //读取字符串 //这里是可以修改的 char &operator[](unsigned short int length 阅读全文
posted @ 2012-09-24 22:32 简单--生活 阅读(1022) 评论(0) 推荐(0) 编辑
摘要:// 27 编辑写精减版的string类/*实现功能如下: 1: 可计算字符串的长度,类似于string类的size或者length 2: 可对字符串进行赋值,如string str="hell word"; 3: 可将char型字符串直接赋值给string型字符串,如 string str="hello word"; char ch[10] = "not at all"; 4: 可象对像那样将字符串进行初始化,如:string str("Month"); 5: 可将两个字符相加,然后将合并后的字符串赋给另一个字符 阅读全文
posted @ 2012-09-24 22:31 简单--生活 阅读(164) 评论(0) 推荐(0) 编辑
摘要:// 28创建string类/*#include <iostream>using namespace std;class String{public: String(); int getlen(){ return len;}private: int len; char *str;};//创建一个空的str变量String::String(){ len = 0; str = new char[1]; str[0] = '\0';};int main(){ String str; cout<<str.getlen()<<endl; return 阅读全文
posted @ 2012-09-24 22:31 简单--生活 阅读(141) 评论(0) 推荐(0) 编辑
摘要://29创建可自动调节大小的string类字符串对象//上一节实现了一个空字符串的创建,本节将在这个基础上创建一个有字符的字符串,并且该字符串可以根据字符的长度自动调节数组的大小/*#include <iostream>using namespace std;class String{public: String(); //默认的构造函数 String(const char*const ch); //构造带值的string int getlen()const { return len;} //读取长度 const char *getstr()const{ return str;} 阅读全文
posted @ 2012-09-24 22:31 简单--生活 阅读(207) 评论(0) 推荐(1) 编辑
摘要://26 前置跟后置自加/*#include <iostream>using namespace std;class A{public: A(int n){ rx=n;} friend ostream&operator<<(ostream&s, const A&c){ s<<c.rx<<endl; return s; } friend istream&operator>>(istream&s, A&c) { s>>c.rx; return s; } //前置运算符 int o 阅读全文
posted @ 2012-09-24 22:30 简单--生活 阅读(183) 评论(0) 推荐(0) 编辑
摘要:// 25重载自加运算符的执行次序/*#include <iostream>using namespace std;class A{public: A(int n){ rx=n;} friend ostream&operator<<(ostream&s, const A&c){ s<<c.rx<<endl; return s; } //前置运算符 int operator++(){ cout<<"++i"<<endl; rx++; return rx; } //后置自加 int 阅读全文
posted @ 2012-09-24 22:29 简单--生活 阅读(256) 评论(0) 推荐(0) 编辑
摘要:// 23重载输出运算符/*#include <iostream>using namespace std;class A{public: A(int x, int y){ rx = x; ry = y; }//private: int rx; int ry;};ostream&operator<<(ostream&s, const A&c){ s<<c.rx<<" "; s<<c.ry<<endl; return s;};int main(){ A a(3,4), b(5,6); 阅读全文
posted @ 2012-09-24 22:27 简单--生活 阅读(190) 评论(0) 推荐(0) 编辑
摘要:// 24友无的方式重载输出运算符//本节的开头首先讲一下运算符的知道,<<是按位左移运算符,但是当该符号与流对象,比如说cout连用地就变成了输出运算符,或者叫提取运算符//注意它们的区别,接位左移动算符是用来执行位移操作的,比如说//int num=1;//num<<1;//按位左移运算符(<<)将运算符左边的运算对像num向左移动运算符右侧指定的位数1,然后在低部补0//了解了它们的区另以后,接下来有个问题,按位左移运算符和输出运算符这两个符号是一样的,编辑器是如何来区分它们的,为了解释这个问题,我们需要返回到上一节的代码中/*#include < 阅读全文
posted @ 2012-09-24 22:27 简单--生活 阅读(444) 评论(0) 推荐(0) 编辑
摘要:// 21string数组与函数/*#include <iostream>#include <string>//假如要传递多个字符串,那么可以声明一个string对像数组,然后将数组传递到函数中using namespace std;void show(const string str[], int l);int main(){ const int l = 5; string st[l]; for(int i=0; i<l; i++) { cout<<i<<"请输入:"<<endl; cin>>s 阅读全文
posted @ 2012-09-24 22:26 简单--生活 阅读(222) 评论(0) 推荐(0) 编辑
摘要://22流的简介/*"流"从字面上理解是流动的意思,书面上的解释是物质从一处往另一处流动的过程C++的输入和输出遵循了这一概念,C++的输出是将一个对像的状态下换成一个字符序列,车出到指定的地方cout<<"hello world";双引号中的hello word是所有输出的对像,C++的重载按位左移运算符<<将对像转换成一个向左移动的字符序列,cout则表示将其输出在计算机外部设备管理中,如显示器的屏幕上C++的重载按位右移运算符>>表示从指定地方按照向右移动的顺序接受字符序列,然后将其转换为对像的数据成员的格式,c 阅读全文
posted @ 2012-09-24 22:26 简单--生活 阅读(262) 评论(0) 推荐(0) 编辑
摘要:// 20结构体与string//string是一个类,在C++中类与结构体区另不大,因此string类与结构体的区别也不大,既然string类结构体的区别不大,那么我们可以把一个结构传递给函数并返回结构体,我们自然也可以把string对像传递给函数或者返回一个string对像/*#include <iostream>#include <string>using namespace std;const string& show(const string &p){ cout<<p<<endl; return p;}int main( 阅读全文
posted @ 2012-09-24 22:25 简单--生活 阅读(262) 评论(0) 推荐(0) 编辑
摘要://19 结构体与函数//由于结构可以看作一个数据类型并且可以赋值,因为我们可以将结构传递到函数中,或者在函数中返回一个结构//按值返回我们知道需要复制返回的结构,结构体可以容纳不同的类型的变量,相应产生的问题是复制数据也很多,假如我们不想复制数据,那么就要按地址返回/*#include <iostream>using namespace std;struct time{ int hour; int minute;};const int perhour = 60; //定义分钟数//time sum(time t1, time t2);time *sum(time t1, time 阅读全文
posted @ 2012-09-24 22:24 简单--生活 阅读(252) 评论(0) 推荐(0) 编辑
摘要://17结构体与类的区别//我们知道结构体是C时代的产物,到了C++之后结构体有了很大的变化,可以增加函数,可以设置成员的公有,私有和保护属性,可以从别的类继承,也可以被别的类继承,可以有虚函数据//唯一与类不同之处的地方是,结构体的成员默认是public,而类的成员默认是private./*#include <iostream>#include <string>using namespace std;//由于结构体的这种默认公有属性,我们一般用来保存多个数据类型,比如说//我们要保存一个人的姓名,性别,年龄,身高和体重struct A{//public: int ge 阅读全文
posted @ 2012-09-24 22:23 简单--生活 阅读(268) 评论(0) 推荐(0) 编辑
摘要://18结构体的赋值//结构既然是一种数据类型,那么我们就可以象变量那样进行赋值操作,不过前提是必须两个结构都是同类型/*#include <iostream>using namespace std;struct people{ double weight; double tall;};int main(){ people Mick = {111.1, 99.9}; people Jack = {222.3,55.4}; cout<<Mick.tall<<" "<<Mick.weight<<endl; cout&l 阅读全文
posted @ 2012-09-24 22:23 简单--生活 阅读(175) 评论(0) 推荐(0) 编辑
摘要:// 15 char型字符串与函数/*#include <iostream>using namespace std;//int get(const char*p);int get(const char p[]);int main(){ //char型字符串也就是C风格的字会串,它由一个串字符组成,结尾为字符串结束标志'\0' //字符串名是第一个字符的地址,因此我们将字符串名作为参数传递到函数时,其实就是将地址传递到函数中去 //由于字符串的最后一个字符是'\0',因此我们不必传递字符长度,只要在函数中设置一个循环体,把结束字符作为循环结束的条件即可 阅读全文
posted @ 2012-09-24 22:22 简单--生活 阅读(600) 评论(0) 推荐(0) 编辑
摘要:// 16 函数如何返回字符串/*#include <iostream>using namespace std;char *get(char *str);int main(){ //上一节的末尾处讲过,只要获得字符串中第一个字符的地址就可依次找到其它字符,因此只要将字符串中第一个字符的地址返回,就相当于返回了整个字符串 //既然它们都可看作是字符串第一个字符的地址,那么在函数中直接将它们返回,也就等同于返回了字符串的第一个字符的地址,从而间接地达到了返回整个字符串的目前的,另外由于返回的是地址,自然而然地避免了调用复制构造函数,系统的开销也大大减少 char c[10] = &qu 阅读全文
posted @ 2012-09-24 22:22 简单--生活 阅读(329) 评论(0) 推荐(0) 编辑
摘要:// 12判断string类型字符串是否为空/*#include <iostream>#include <string>using namespace std;int main(){ string s1 = ""; if(s1.empty()){ cout<<"s1为空"<<endl; }else{ cout<<"s1不为空:"<<s1<<endl; } return 0; */ 阅读全文
posted @ 2012-09-24 22:07 简单--生活 阅读(665) 评论(0) 推荐(0) 编辑
摘要:// 13 交换两个字符串内容的swab函数/*#include <iostream>#include <string>using namespace std;int main(){ //C库函数中有一个swab函数,该函数用来交换字节,那么可不可以交换两个字符串的内容呢? char ch1[15] = "ofru"; char ch2[] = ""; //swab(ch1,ch2,strlen(ch1)); //不知道什么毛病,用swab总是动行后提示错误 //cout<<"ch1:"<&l 阅读全文
posted @ 2012-09-24 22:07 简单--生活 阅读(2052) 评论(0) 推荐(0) 编辑
摘要:// 14 将string型字符串转为char字符串/*#include <iostream>#include <string>using namespace std;int main(){ string str="hello word"; const char *ch; ch = str.c_str(); cout<<ch<<endl; return 0;}*/ 阅读全文
posted @ 2012-09-24 22:07 简单--生活 阅读(215) 评论(0) 推荐(0) 编辑
摘要:// 11 string字符串的比较#include <iostream>#include <string>using namespace std;int main(){ string s1 = "155"; string s2 = "52"; char c[] = "34"; int i, j, k, l, m, n; i = s1.compare(s2); //compare比较的事字符而不是数字 //compare 将s1与s2比较,返回0为相等,1为s1大于s2,-1为s1小于s2; cout<& 阅读全文
posted @ 2012-09-23 15:48 简单--生活 阅读(360) 评论(0) 推荐(0) 编辑
摘要:// 9 string类的erase成员函数的使用/*#include <iostream>#include <string>using namespace std;int main(){ string s = "give me"; cout<<"原始字符串为:"<<s<<endl; s.erase(1,3); //炎1开始删除三个字符 cout<<"原始字符串为:"<<s<<endl; s.erase(2); //删除二个字符,从后面开始 阅读全文
posted @ 2012-09-23 15:47 简单--生活 阅读(257) 评论(0) 推荐(0) 编辑
摘要:// 10string 型字符串的查找/*#include <iostream>using namespace std;int main(){ char ch1[20]; char *p, c='w'; strcpy(ch1,"hellwo wordlxxdxxd"); p = strchr(ch1,c); //在字符串中查找字符 if(p){ //这里的p-ch1, 相当于p在ch1中的位置 //这里的p是指的从查找到字符后面的所有字符, //这里的位置有点不清楚样 //还要提高 //由于一个字符占一个字节,因此用p-ch1就是用求出p相对于c 阅读全文
posted @ 2012-09-23 15:47 简单--生活 阅读(696) 评论(0) 推荐(0) 编辑
摘要:// 7 string型字符串的拷贝/*#include <iostream>#include <string>using namespace std;int main(){ //char ch1[15] = "hello word"; //char ch2[] = "xiang ling chuan"; //cout<<"源字符串"<<ch1<<endl; //memmove(ch1,ch2,5); //cout<<"拷贝后:"<< 阅读全文
posted @ 2012-09-23 15:44 简单--生活 阅读(451) 评论(0) 推荐(0) 编辑
摘要://8 string类insert成员函数的使用/*#include <iostream>#include <string>using namespace std;int main(){ string str1 ="php china"; string str2 = "hello word"; str1.insert(4,str2,0,5); cout<<str1<<endl; return 0;}*/ 阅读全文
posted @ 2012-09-23 15:44 简单--生活 阅读(824) 评论(0) 推荐(0) 编辑
摘要:#include <iostream>using namespace std;int main(){ char ch1[10] = "ab"; char ch2[] = "abcdef"; strncat(ch1,ch2,3); //ababc 合并char类型的字符串,第三个参数是指需要合并的字符串个数 cout<<ch1<<endl; return 0;}//相对应的是string类的append成员函数的使用#include <iostream>#include <string>using 阅读全文
posted @ 2012-09-20 00:05 简单--生活 阅读(377) 评论(0) 推荐(0) 编辑
摘要:#include <iostream>#include <string>using namespace std;int main(){ //char ch1[10] = "gh"; //char ch2[] = "abcdef"; //strncpy(ch1,ch2,6); //cout<<ch1<<endl; string str1="hello word"; //string str2="xianglingchuan"; //支持char字符串 //char st 阅读全文
posted @ 2012-09-20 00:05 简单--生活 阅读(232) 评论(0) 推荐(0) 编辑
摘要:#include <iostream>#include <string>using namespace std;int main(){ //char ch1[] = "give ne"; //char ch2[] = "a cup"; //ch1 = ch2; 这样是错误的,你不能把一个数组名赋值给另一个数组名 //strcpy(ch1,ch2); //strcpy(ch1,"a cup");//第二个参数可能是常量字符数组 //第一: strcpy会将ch2中的所有字符,包括结束标志'\0'一 阅读全文
posted @ 2012-09-19 23:13 简单--生活 阅读(227) 评论(0) 推荐(0) 编辑
摘要:#include <iostream>#include <string>using namespace std;int main(){ //char字符数组的的合并 char ch1[40] = "what's your name "; char ch2[] = "my name is jack"; strcat(ch1,ch2); cout<<"ch1:"<<ch1<<endl; cout<<"ch2:"<<ch2< 阅读全文
posted @ 2012-09-19 23:13 简单--生活 阅读(475) 评论(0) 推荐(0) 编辑
摘要://char型字符串是C语言风格的字符串,它是用数组来保存字符串的,但是到了C++时代,由于延生了类,出现了一种C++风格的字符串,也就是string型字符串//这种风格的字符串是用string类来定义字符串的,因此要使用这个string类,我们必须在程序开头添加头文件string,string类存在于名字空间std中,这样我们就必须使用using std:string指令,或者直接用std::string来访问它//string类在定义时隐藏掉了字符串的数组性质,因此您有使用string类定义字会串时不用考虑如休将字符串存放在数组中,string类已经为您做好了这一步,您要做的,就是象定义一 阅读全文
posted @ 2012-09-19 23:12 简单--生活 阅读(250) 评论(0) 推荐(0) 编辑
摘要:#include <iostream>using namespace std;int main(){ //char man[12]; //cin.get(man,12); //cin.get的结束标志是"\n",也就是换行,因此遇到空格不会结束,而是把空格也看做一个空字符,同时在输入结束后,也就是用户输入一个回车后, //cin.get自动为当前接受输入的数组添加字符串结束标志'\0',因此它实际保存的有效字符是它的第二个参数减一,在本例中是(12-1)11个字符 //cout<<man<<endl; //但是与cin不同 阅读全文
posted @ 2012-09-19 23:11 简单--生活 阅读(531) 评论(0) 推荐(0) 编辑
摘要://成员函数指针数组//假如我们将许多成员函数指针放在一个数组中,那么这个数组就叫成员函数指针数组//该数组中的成员函数指针可以通过数组的下标来进行调用,并且可以用成员函数的内存地址来对数组的各个成员函数指针进行初始化#include <iostream>#include <string>using namespace std;class Paper{public: void read(){ cout<<"纸上面的字可以读"<<endl;} void write(){ cout<<"纸可以用来写字&quo 阅读全文
posted @ 2012-09-17 23:58 简单--生活 阅读(478) 评论(0) 推荐(0) 编辑
摘要:#include <iostream>using namespace std;class Human{public: virtual void run()=0; virtual void eat()=0;};class Month:public Human{public: void run(){ cout<<"母亲跑百米要二十少"<<endl;} void eat(){ cout<<"母亲喜欢吃零食"<<endl;}};class Father:public Human{public: void 阅读全文
posted @ 2012-09-17 23:25 简单--生活 阅读(164) 评论(0) 推荐(0) 编辑
摘要:// 8 使用typedef简化函数指针的声明#include <iostream>using namespace std;//void (*p[5])(int&, int&);typedef void(*p)(float&,float&);//函数指针作为函数的参数的一般形式为:void func(void(*p)(int&,int&), int&, int&);//该函数func有三个参数,第一个参数void(*p)(int&,int&)是个函数指针,//它指向一个带有两个int型参数并且返回voi 阅读全文
posted @ 2012-09-17 00:04 简单--生活 阅读(488) 评论(0) 推荐(0) 编辑
摘要://7 函数指针也可以作为函数的参数//既然指针可以作为函数的参数,那么指向某个函数的指针为什么就不可以呢?#include <iostream>using namespace std;void (*p[5])(int&, int&);//函数指针作为函数的参数的一般形式为:void func(void(*p)(int&,int&), int&, int&);//该函数func有三个参数,第一个参数void(*p)(int&,int&)是个函数指针,//它指向一个带有两个int型参数并且返回void值的函数,另外两个参 阅读全文
posted @ 2012-09-16 23:52 简单--生活 阅读(228) 评论(0) 推荐(0) 编辑
摘要://6 函数指针数组#include <iostream>using namespace std;//既然我们可以声明一个指向变量或者对像的指针数组,为什么就不能声明一个指向函数的指针数组呢?void (*p[5])(int&, int&);//它的意思是声明了一个有5个元素的数组指针,该数组指针所指的函数必须有两个int参数//而且要返回void的值,也就是空值,它与函数指针的区别只是指针数量的不同,函数指针只可以存储一个函数的地址,而函数指针数组可以存储任意个函数//计算平方void square(float&x, float&y){x=x*x; 阅读全文
posted @ 2012-09-16 23:25 简单--生活 阅读(219) 评论(0) 推荐(0) 编辑
摘要://5 函数指针//我们知道数组名是指向数组第一个元素的常量指针//同理,函数名也是指向函数第一条指令的常量指针,一般来说,在不出现异常的情况下//程序在编译后,每个函数都有一个首地址,也就是函数第一条指令的地址//那么这个指针就是函数指针,该指针可以看做是函数名,因为我们可以通过该指针调用函数#include <iostream>#include <string>using namespace std;bool check(string);void get(float &, float &);//int (*func)(int);//该语句声明了一个i 阅读全文
posted @ 2012-09-16 22:47 简单--生活 阅读(208) 评论(0) 推荐(0) 编辑
摘要:#include <iostream>using namespace std;class aspl{public: aspl(float p) { price = p; TotalPrice+=p; } static float getTotalPrice() { return TotalPrice; } ~aspl(){ TotalPrice-=price;}private: float price; static float TotalPrice;};float aspl::TotalPrice = 0;int main(){ float f; cout<<&quo 阅读全文
posted @ 2012-09-16 22:45 简单--生活 阅读(159) 评论(0) 推荐(0) 编辑
摘要:一、简介 在PHP中实现强制对象类型有时可能非常重要。如果缺少了它,或是因为缺乏这方面的知识——基于不正确的编程假设,或者仅仅是由于懒惰,那么你会在特定的Web应用程序中看到你所不希望的结果。特别是当用PHP 4进行编程时,使用"is_a()"函数(尽管还有其它方法)来验证你所使用的对象的类型是非常容易的事情。毫无疑问,强制对象类型还可以被用于过滤输入对象(需要被作为参数传递到同一个应用程序中的其它PHP类)。 不过,PHP 4并没有暴露一些有关于它的对象模型的弱点-为了实现某些在成熟的面向对象的语言中出现的特征,它偶而可能要求编写另外的代码。长时间以来,这一事实已经为PH 阅读全文
posted @ 2012-09-16 14:43 简单--生活 阅读(4447) 评论(0) 推荐(0) 编辑
摘要:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=u 阅读全文
posted @ 2012-09-14 18:39 简单--生活 阅读(410) 评论(0) 推荐(0) 编辑
摘要:类类的声明:<?php 权限修饰符 class 类名{ //权限修士符号:public,protected,private 或者省略3者. //类体; //class 是建类关键字 } //类名必须跟在class 后面,且跟上{}.{}之间放类的成员. ?>//ps:在class关键字前可以加权限修饰符外,还可以加static,abstract等关键字.一个类,即一对大括号之间的全部内容都要在一段代码段中,不允许将类中的内容分割成对块.<?php class ConnDB{ //....?><? //... };... 阅读全文
posted @ 2012-09-14 13:59 简单--生活 阅读(7011) 评论(0) 推荐(0) 编辑
摘要:从php手册中抄的,但是我也看过C版的ftok函数的实现,两个是一样的:<?phpfunctionftok($pathname,$proj_id){$st=@stat($pathname);if(!$st){return-1;}$key=sprintf("%u",(($st['ino']&0xffff)|(($st['dev']&0xff)<<16)|(($proj_id&0xff)<<24)));return$key;}echoftok($_SERVER["SCRIPT_FIL 阅读全文
posted @ 2012-09-13 23:17 简单--生活 阅读(2651) 评论(0) 推荐(0) 编辑
摘要:1 /** 2 * 其它版本 3 * 使用方法: 4 * $post_string = "app=request&version=beta"; 5 * request_by_other('http://facebook.cn/restServer.php',$post_string); 6 */ 7 function request_by_other($remote_server,$post_string){ 8 $context = array( 9 'http'=>array( 10 'method'... 阅读全文
posted @ 2012-09-12 13:30 简单--生活 阅读(231) 评论(0) 推荐(0) 编辑
摘要:判断文件存在用is_file还是file_exists?在写程序时发现在判断文件是否存在时,有两种写法,有的人用了is_file,有的人用了file_exists,用哪个更好或者说更合适呢?看了这篇PHP中file_exists与is_file,is_dir的区别的说法基本明白,PHP的 file_exists = is_dir + is_file。写程序验证一下:分别执行1000次,记录所需时间。文件存在(当前目录)is_file:0.4570msfile_exists:2.0640ms文件存在(绝对路径3层/www/hx/a/)is_file:0.4909msfile_exists:3.3 阅读全文
posted @ 2012-09-12 13:26 简单--生活 阅读(367) 评论(0) 推荐(0) 编辑
摘要:今天刚网上看的 不多说直接帖代码----<head><-----></head><body><!--向下滚动代码开始--><div id="colee" style="overflow:hidden;height:253px;width:410px;"><div id="colee1"><p><img src=""></p><p><img src=""> 阅读全文
posted @ 2012-09-10 23:13 简单--生活 阅读(284) 评论(0) 推荐(0) 编辑

简单--生活(CSDN)
点击右上角即可分享
微信分享提示