Chinaunix首页 | 论坛 | 博客
  • 博客访问: 916204
  • 博文数量: 299
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2493
  • 用 户 组: 普通用户
  • 注册时间: 2014-03-21 10:07
个人简介

Linux后台服务器编程。

文章分类

全部博文(299)

文章存档

2015年(2)

2014年(297)

发布时间:2014-09-23 00:47:16

在面向对象编程(Object-Oriented Programming, OOP)中,多态机制无疑是其最具特色的功能,甚至可以说,不运用多态的编程不能称之为OOP。这也是为什么有人说,使用面向对象语言的编程和面向对象的编程是两码事。多态并没有一个严格的定义,维基百科上给它下的定义比较宽松:Subtype polymorphism, almost uni.........【阅读全文】

阅读(4166) | 评论(0) | 转发(1)

发布时间:2014-09-23 00:05:07

/*问题描述:从一个字符串中搜索出指定类型的最长的字符串*/#include <iostream>#include <vector>#include <string>#include <algorithm>#include <ctype.h>using namespace std;struct Snode {    int index;   &n.........【阅读全文】

阅读(1474) | 评论(0) | 转发(0)

发布时间:2014-09-22 23:36:37

1、 C++ 定义了哪些类型转换操作符?分别有什么作用? ① 定义了四个操作符:static_cast,const_cast,dynamic_cast和reinterpret_cast。 ② static_cast:可以被用于强制类型转换(例如,non-const对象转换为const对象,int转换为double,等等),它还可以用于很多这样.........【阅读全文】

阅读(1706) | 评论(0) | 转发(0)

发布时间:2014-09-22 17:36:55

1.        结构化程序设计为了提高程序的可读性、可重用性等,逐渐出现了将程序开发中经常用到的相同的功能,比如数学函数运算、字符串操作等,.........【阅读全文】

阅读(1925) | 评论(0) | 转发(1)

发布时间:2014-09-22 17:13:04

......【阅读全文】

阅读(1930) | 评论(0) | 转发(1)

发布时间:2014-09-22 09:21:15

有一个单链表,其中可能有一个环,也就是某个节点的next指向的是链表中在它之前的节点,这样在链表的尾部形成一环。问题:1、如何判断一个链表是不是这类链表?2、如果链表为存在环,如何找到环的入口点?解答:一、判断链表是否存在环,办法为:设置两个指针(fast, slow),初始值都指向头,slow每次前进一步,f.........【阅读全文】

阅读(1868) | 评论(0) | 转发(1)

发布时间:2014-09-21 23:39:39

“一切皆Socket!”话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket。——有感于实际编程和开源项目研究。我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程.........【阅读全文】

阅读(2033) | 评论(0) | 转发(0)

发布时间:2014-09-19 22:04:02

在进行UDP编程的时候,我们最容易想到的问题就是,一次发送多少bytes好?    当然,这个没有唯一答案,相对于不同的系统,不同的要求,其得到的答案是不一样的,我这里仅对    像ICQ一类的发送聊天消息的情况作分析,对于其他情况,你或许也能得到一点帮助:    首先,我们知道,TCP.........【阅读全文】

阅读(7637) | 评论(0) | 转发(0)

发布时间:2014-09-19 09:18:19

1、好好规划自己的路,不要跟着感觉走;  根据个人的理想来安排自己的生活,绝大部分人并不指望成为什么院士或教授,而是希望活得滋润一些,痛快一些,那么就需要慎重安排自己的的轨迹,从一个行业入手逐渐对该行业深入了解,不要频繁跳槽,特别是不要为了一点工资而转移阵地,从长远看,这点钱根本不算什么,当你.........【阅读全文】

阅读(1258) | 评论(0) | 转发(0)

发布时间:2014-09-15 23:32:47

 单例模式也称为单件模式、单子模式,可能是使用最广泛的设计模式。其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。有很多地方需要这样的功能模块,如系统的日志输出,GUI应用必须是单鼠标,MODEM的联接需要一条且只需要一条电话线,操作系统只能有一个窗口管理器,一台PC.........【阅读全文】

阅读(1727) | 评论(1) | 转发(0)

发布时间:2014-09-13 10:42:09

下面是高性能服务器邮件组(http://groups.google.com/group/dev4server)上一次问答。lizp.net的问题还是从字面“流”来理解TCP时带来的疑问。如果是“流”,怎么发送,什么时候确认?什么时候分片?怎么接受?我对此进行了较详细的回答。感觉这个问题比较典型,所以重新整理编辑补充。lizp.net问:一般来说,.........【阅读全文】

阅读(1859) | 评论(0) | 转发(0)

发布时间:2014-09-11 12:16:08

在Linux socket关闭连接的方法有两种分别是shutdown和close,首先看一下shutdown的定义#include<sys/socket.h>int shutdown(int sockfd,int how);how的方式有三种分别是SHUT_RD(0):关闭sockfd上的读功能,此选项将不允许sockfd进行读操作。SHUT_WR(1):关闭sockfd的写功能,此选项将不允许.........【阅读全文】

阅读(7814) | 评论(0) | 转发(0)

发布时间:2014-09-11 12:01:29

C中的可变参数研究一. 何谓可变参数int printf( const char* format, ...);这是使用过C语言的人所再熟悉不过的printf函数原型,它的参数中就有固定参数format和可变参数(用”…”表示). 而我们又可以用各种方式来调用printf,如:printf( "%d ",value);printf( "%s ",str);printf( "the number is %d ,string is:%s.........【阅读全文】

阅读(1504) | 评论(0) | 转发(0)

发布时间:2014-09-11 11:51:20

我写了一个服务器程序,在Linux下测试,然后用C++写了客户端用千万级别数量的短链接进行压力测试.  但是服务器总是莫名退出,没有core文件.最后问题确定为, 对一个对端已经关闭的socket调用两次write, 第二次将会生成SIGPIPE信号, 该信号默认结束进程.具体的分析可以结合TCP的"四次握手"关闭. TCP是全双.........【阅读全文】

阅读(1424) | 评论(0) | 转发(0)

发布时间:2014-09-09 22:50:56

问题C语言以及C++语言中的const究竟表示什么?其具体的实现机制又是如何实现的呢? 本文将对这两个问题进行一些分析,简单解释const的含义以及实现机制。问题分析简单的说const在C语言中表示只读的变量,而在C++语言中表示常量。关于const在C与C++语言中的使用以及更多的区别,以后有时间另开一.........【阅读全文】

阅读(1133) | 评论(0) | 转发(1)

发布时间:2014-09-09 17:43:52

越是重要的决定,越要自己去抉择。容不得别人掺和。我是做咨询的,说这话好像违背我的职业原则。很多人找我,就是想知道应该如何决定。然而,我能做的是,告诉你什么样的原则是对的,什么样的策略是具有优势的,而最终究竟是否要应用那原则,是否要采取那策略,我当然无法越俎代庖。如果答案是确定.........【阅读全文】

阅读(991) | 评论(0) | 转发(0)

发布时间:2014-09-09 16:56:21

操作系统: Redhat Linux AS5 32bit服务器内存: 4G服务器类型: I32最近写搜索引擎, 因为创建索引需要大量的内存, 所以对Linux下的大内存申请进行了一些测试. 希望对大家有所帮助.(1)char * p = (char *)malloc( 2G字节 );=>申请失败.(2)char * p = (char *)malloc( 1.9G字节 );=>申请成功(3)连续的申请10个300M.........【阅读全文】

阅读(2305) | 评论(0) | 转发(0)

发布时间:2014-09-06 17:46:06

自己写了一下小的shell实例,虽然很小,但所有的大的程序都是由小的模块堆积起来的,程序员一定要懂得一种脚本的书写,而我,只会在linux下工作,所以就只能写linux的shell脚本了,呵呵,本文会陆续更新,给自己加油!1.模拟linnux登录shell[plain] view plaincopy#!/bin/.........【阅读全文】

阅读(1292) | 评论(0) | 转发(0)

发布时间:2014-09-01 18:02:55

1. TCP连接当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次握手的,而释放则需要4次握手,所以说每个连接的建立都是需要资源消耗和时间消耗的经典的三次握手示意图:经典的.........【阅读全文】

阅读(1645) | 评论(0) | 转发(0)
给主人留下些什么吧!~~

tianyashuibin2014-12-08 11:22

Oscarzhao:c++11 中貌似可以

嗯,是的,在c++11中可以

下面是在gcc的编译结果:
test_struct.cc:8:11: warning: non-static data member initializers only available with -std=c++11 or -std=gnu++11 [enabled by default]
   int a = 1;
           ^

回复  |  举报

Oscarzhao2014-11-26 20:12

tianyashuibin:除了静态数据成员外,数据成员不能在类体内显式的初始化

举个最简单例子
struct a

  int a=1;
  int b=2;
};
这也不能通过啊!
原因很简单,因为struct a此时只是在说明有这么个类型,而并没有定义一个具体的变量和分配内存空间

c++11 中貌似可以

回复  |  举报

tianyashuibin2014-10-23 21:57

除了静态数据成员外,数据成员不能在类体内显式的初始化

举个最简单例子
struct a

  int a=1;
  int b=2;
};
这也不能通过啊!
原因很简单,因为struct a此时只是在说明有这么个类型,而并没有定义一个具体的变量和分配内存空间

回复  |  举报

tianyashuibin2014-10-23 21:39

1.分配内存,调用构造函数时,隐式/显示的初始化各数据成员
2.进入构造函数后在构造函数中执行一般计算
  1.类里面的任何成员变量在定义时是不能初始化的。
  2.一般的数据成员可以在构造函数中初始化。
  3.const数据成员必须在构造函数的初始化列表中初始化。
  4.static要在类的定义外面初始化。   
  5.数组成员是不能在初始化列表里初始化的。
  6.不能给数组指定明显的初始化。  
这6条一起,说明了一个问题:C++里面是不能定义常量数组的!因为3和5的矛盾。

回复  |  举报

tianyashuibin2014-10-23 21:32

记住静态成员这样初始化:
C/C++ code

class A
{
public:
   static const int a[3];
};
 
const int A::a[3] = {1,2,3};

回复  |  举报
留言热议
请登录后留言。

登录 注册