摘要: const修饰符可以把对象转变成常数对象,什么意思呢?意思就是说利用const进行修饰的变量的值在程序的任意位置将不能再被修改,就如同常数一样使用! 使用方法是:const int a=1;//这里定义了一个int类型的const常数变量a; 但就于指针来说const仍然是起作用的,以下有两点要十分注意,因为下面的两个问题很容易混淆! 我们来看一个如下的例子:#include <iostream>using namespace std;void main(void){const int a=10;int b=20;const int *pi;pi=&a;cout <& 阅读全文
posted @ 2012-08-22 15:51 SA高处不胜寒 阅读(171) 评论(0) 推荐(0) 编辑
摘要: #include <vector>#include <iterator>#include <iostream>using namespace std; void printMy(vector<int>); int main(){ vector<int> vecInt; vecInt.push_back (1); vecInt.push_back (6); vecInt.push_back (6); vecInt.push_back (3); vector<int>::iterator itor; vector<int 阅读全文
posted @ 2012-08-22 15:39 SA高处不胜寒 阅读(557) 评论(0) 推荐(0) 编辑
摘要: 今天尝试在类中实现结构体,但是在类中对结构体进行声明实现,然后对其进行实现就会报错,例如按照如下的实现方式#include <iostream>using namespace std;class A{public: struct one{ string name; int age; }obj; void shuchu();};void shuchu(){ cout<<"a"<<endl;}int main(){ A a; a.obj = {"chenhongliang",1}; return 0;}这样会编译不过,但该 阅读全文
posted @ 2012-08-20 23:06 SA高处不胜寒 阅读(514) 评论(0) 推荐(0) 编辑
摘要: vector中如果元素是struct类型或者class类型,若要对其中某个类型的元素进行排序,具体代码的编写如下所示:#include <iostream>#include <vector>using namespace std;struct Record{ string name; char add[24];};struct Cmp_by_name //为排序编写的结构体{ bool operator()(const Record &a, const Record &b) { return a.name < b.name; }};int main 阅读全文
posted @ 2012-08-19 19:19 SA高处不胜寒 阅读(1219) 评论(0) 推荐(0) 编辑
摘要: 在模板中,可以通过参数不同类型,下面讨论的是使用整数值作为模板参数的最常见的例子:template<class T, int N>struct array{T elem[N];int size() const {return N;}}; 阅读全文
posted @ 2012-08-19 16:57 SA高处不胜寒 阅读(151) 评论(0) 推荐(0) 编辑
摘要: #include <winsock2.h>#include <stdio.h>#pragma comment( lib, "ws2_32.lib" )struct sockaddr_in server_addr;struct sockaddr_in client_addr;int main(void){long a =0x102030FF;long b =0x405060FF;memcpy((char*)&server_addr.sin_addr, (char*)&a, sizeof(server_addr.sin_addr));me 阅读全文
posted @ 2012-08-19 11:52 SA高处不胜寒 阅读(1001) 评论(0) 推荐(0) 编辑
摘要: 对于编写多线程的朋友来说,队列具有天生的互斥性。在队列里面,一个负责添加数据,一个负责处理数据。谁不妨碍谁,谁也离不开谁,所以,队列具有天生的互斥性。#define MAX_NUMBER 1000L#define STATUS int#define OK 0#define FALSE -1typedef struct _QUEUE_DATA{ int data[MAX_NUMBER]; int head; int tail;}QUEUE_DATA; 此时,一个线程压入数据,操作为push_dataSTATUS push_data(QUEUE_DATA* pQueue, int da... 阅读全文
posted @ 2012-08-15 16:35 SA高处不胜寒 阅读(1024) 评论(0) 推荐(0) 编辑
摘要: 前天和大学室友吃烧烤,其中谈到菱形继承的问题,突然发现脑中对这个几乎空白,所以晚上回来就上网搜了搜,言归正传,说到菱形继承,就要说到虚继承的概念,对于虚继承,就是为了解决从不同途径继承来的同名的数据成员在内存中有不同的拷贝造成数据不一致问题,将共同基类设置为虚基类。这时从不同的路径继承过来的同名数据成员在内存中就只有一个拷贝,同一个函数名也只有一个映射。这样不仅就解决了二义性问题,也节省了内存,避免了数据不一致的问题。 class 派生类名:virtual 继承方式 基类名virtual是关键字,声明该基类为派生类的虚基类。在多继承情况下,虚基类关键字的作用范围和继承方式关键字相同,只对紧跟其 阅读全文
posted @ 2012-08-07 23:02 SA高处不胜寒 阅读(5778) 评论(0) 推荐(1) 编辑
摘要: 面试的同学经常提起在面试时经常有被问到关于链表逆置的问题,今晚有时间也就写了一个,在下面程序中有创建链表和逆置两个功能,具体代码如下:#include <iostream>using namespace std;typedef char node_type;typedef struct node{ node_type data; struct node *next;}node_list, *_node_list;_node_list createList(char data[], int size){ _node_list head,my_node; head = new node 阅读全文
posted @ 2012-08-07 22:31 SA高处不胜寒 阅读(179) 评论(0) 推荐(0) 编辑