
C++相关
文章平均质量分 62
kerwinpc
喜欢运动,爱古典音乐
展开
-
Essential C++学习笔记(一)
By Reference当以by reference方式传递对象当作函数参数,对象本身并不会被复制出一个副本——复制的是对象的地址,函数中对该对象进行的任何操作,都相当于是对传入的对象进行间接的操作。将参数声明为reference的理由之一:希望得以直接对所传入的对象进行修改。这个理由极为重要,因为就像我们在前面的例子中所见,不这么做的话,程序无法正确运行。将参数声明为referenc原创 2008-03-25 13:37:00 · 644 阅读 · 0 评论 -
Linux多线程编程
1 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括Linux。 为什么有了进程的概念后,还要再引入线程转载 2008-12-01 21:49:00 · 648 阅读 · 0 评论 -
Linux Socket 网络编程 (IBM网站)第一章
第一章Socket 是做什么的?虽然 socket 接口理论上还允许访问除 IP 以外的协议系列,然而在实际上,socket应用程序中使用的每个网络层都将使用IP。对于本教程来说,我们仅介绍 IPv4;将来 IPv6 也会变得很重要,但是它们在原理是相同的。在传输层,socket支持两个特殊协议:TCP (transmission control protocol,传输控制协议)转载 2008-12-01 21:53:00 · 571 阅读 · 0 评论 -
网络编程之-原始套接字
原始套接字能访问ICMP和ICMP等协议包,能读写内核不处理的IP数据包。能创建自定义的IP数据包首部。一句话,使用原始套接字能 编写基于IP协议的通讯程式。 1.创建原始套接字具体格式如下:int sockfd;sockfd = socktet(AF_INET, SOCK_RAW,IPPROTO_ICMP);第一个参数:协议族 AF_INET代表TCP/IP协议第二个参数:SOC转载 2008-12-01 21:35:00 · 1188 阅读 · 0 评论 -
Linux下的多进程编程
(一) 理解Linux下进程的结构 Linux下一个进程在内存里有三部份的数据,就是“数据段”,“堆栈段”和“代码段”,其实学过汇编语言的人一定知道,一般的CPU象I386,都有上述三种段寄存器,以方便操作系统的运行。“代码段”,顾名思义,就是存放了程式代码的数据,如果机器中有数个进程运行相同的一个程式,那么他们就能使用同一 个代码段。 堆栈段存放的就转载 2008-12-01 21:36:00 · 415 阅读 · 0 评论 -
Linux Socket 网络编程 (IBM网站)第二章
第二章编写套接字服务器的步骤套接字服务器比客户机稍微复杂一点,这主要是因为服务器通常需要能够处理多个客户机请求。服务器基本上包括两个方面:处理每一个已建立的连接,以及要建立的连接。在我们的例子中,以及在大多数情况下,都可以将特定连接的处理划分为支持函数,这看起来有点像 TCP 客户机所做的事情。我们将这个函数命名为 HandleClient()。对新连接的监听与客户机有一点转载 2008-12-01 21:53:00 · 533 阅读 · 0 评论 -
C++命名规则收藏
http://blog.youkuaiyun.com/ariesjzj/archive/2007/08/08/1732220.aspx 在软件开发这一高度抽象而且十分复杂的活动中,命名规则的重要性更显得尤为突出。一套定义良好并且完整的、在整个项目中统一使用的命名规范将大大提升源代码的可读性和软件的可维护性。在引入细节之前,先说明一下命名规范的整体原则:同一性在编写一个子模转载 2009-02-12 09:29:00 · 894 阅读 · 0 评论 -
ubuntu下安装SVN
1。安装subversion和apache2的组件(已经认为您已经安装了apache2), sudo apt-get install subversion subversion-tools libapache2-svn在/etc/apache2/mods-enabled中会多出来一下几个链接文件(实际文件在mods-available中,我们不需要去管,只需要关注enable转载 2008-12-01 21:11:00 · 825 阅读 · 0 评论 -
经典编程书籍(C++, 网络, Windows, Linux)
导读: 书单中列举的都是相关领域的经典书籍,必读之作。此书单的编辑参考了很多网站,包括一些名家的推荐,例如侯捷,孟岩,荣耀,潘爱民等等,在此也向这些前辈表示感谢。^_^ 1、C++ Language ------------------------------ Bjarne Stroustrup. The C++ Programming Language (Special 3rd转载 2008-12-01 21:29:00 · 1195 阅读 · 0 评论 -
C++中extern “C”含义深层探索
1.引言 C++语言的创建初衷是“a betterC”,不过这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式和C语言完全相同。作为一种欲和C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不完全地面向对象”),因而他能定义不属于所有类的全局变量和函数。不过,C++毕竟是一种面向对象的程式设计语言,为了支持函数的重载,C++对全局函数的处理方转载 2008-12-01 21:38:00 · 467 阅读 · 0 评论 -
C和C++语言学习总结(可以应对面试的题目)
C和C++语言学习总结(资料来自 林锐博士 2001 年7 月24) 知识结构: 1、if,for,switch,goto 2、#define,const 3、文件拷贝的代码,动态生成内存,复合表达式,strcpy,memcpy,sizeof 4、函数参数传递,内存分配方式,内存错误表现,malloc与new区别 5、类重载、隐藏与覆盖区别,extern问题,函数参数的缺省值问转载 2008-12-05 16:05:00 · 462 阅读 · 0 评论 -
cin cout常用函数
cin cout常用函数2007-09-06 10:21cin >> //可连续使用;以空白(包括空格、回车、TAB)为分隔符cin.get(char c) //可连续使用;获取任意单个字符,包括空白cin.getline(char* buf, sizeof(buf), /n) //可连续使用;获取一行,到最后指定的字符结束,可包括空白,默认回车cin.原创 2009-08-17 13:28:00 · 1106 阅读 · 0 评论 -
[Linux可视化编程系列三] 体验Glade的可视化界面设计
前面的两篇文章:《用 Anjuta 轻松搭建 Gtkmm+libglademm 开发环境》和《掀起 Gtkmm + libglademm 的盖头来》,已经为我们能够做出一个有用的gtkmm程序作好了铺垫。 接下来,我们马上就要编写这样的一个程序,它能接收输入的用户名字,然后显示适当的问候语。对它稍作修改就能用于IP物理地址的查询界面。 用Glade进行可视化窗体转载 2008-06-11 17:11:00 · 2652 阅读 · 0 评论 -
[Linux可视化编程系列二] 掀起 Gtkmm + libglademm 的盖头来
Gtkmm 类库的良好设计,使得学习Gtkmm程序的开发变得很容易。对于尝试过MFC的程序员,必将惊讶于Gtkmm的直观明了。 Glade 是可视化设计的不二之选。遗憾的是,有关 Gtkmm + libglademm 编程的文档实在太少,只在《Programming with gtkmm》第 23 章有提及(注:你也可以在DEVHELP的“gtkmm 2.4 library refe原创 2008-06-11 17:07:00 · 1686 阅读 · 1 评论 -
C++ 完全不完全资源导引
1.快速入门 〈Accelerated.C++〉2000 〈Essential C++〉2002 Lipman 两本都是开篇就讲C++/STL,绝口不提C,而且都有中文版。 2.枕头参考 〈C++.Primer.4th〉2005 Lippman,第3版有中文版,当入门书看也无不可。 〈The.C++.Programming.Language.3rd〉Bjarne Stroust原创 2008-03-27 15:22:00 · 530 阅读 · 0 评论 -
关于Gtkmm窗口指针的delete 以及窗口的hide()方法和destroy_()方法
先看一个简单的Gtkmm的例子,问题在下面说:===============HelloWorld.h===============#ifndef HELLOWORLD_H_#define HELLOWORLD_H_#include class HelloWorld : public Gtk::Window{public: HelloWorld(); virtual ~HelloWorld();原创 2008-04-08 20:04:00 · 1176 阅读 · 0 评论 -
c语言调用shell命令_exec
方法一: #include int system(const char *string); 方法二: exec( )函数族 下面我们来看看一个进程如何来启动另一个程序的执行。在Linux中要使用exec函数族。系统调用execve()对当前进程进行替换,替换者为一个指定的程序,其参数包括文件名(filename)、参数列表(argv)以及环境变量(envp)。exec函数族当然不止一个原创 2008-04-11 20:53:00 · 9289 阅读 · 2 评论 -
dev-cpp gtkmm 环境
WINDOWS篇 1、安装dev-cpp2、安装gtk环境 gtk-dev-2.10.11-win32-1.exe 路径随意,比如:D:/GTK,安装过程中会检测到上一步中安装的dev-cpp3、安装gtkmm环境 gtkmm-win32-devel-2.10.8-1 会自动选择到gtk安装的路径。4、添加环境变量“PKG_CONFIG_PATH”,值为gtkmm-2.4.pc文件所在路径如“D原创 2008-04-11 21:34:00 · 855 阅读 · 0 评论 -
两种向TreeView中添加数据的方法
两种向TreeView中添加数据的方法ModelColumns _columnsModle;Glib::RefPtr _refListStore;方法一:Gtk::TreeModel::Row row = *(_refListStore->append());row[_columnsModle._id] = 1;方法二:Gtk::TreeModel::iterator iter = _refLis原创 2008-04-11 22:19:00 · 1636 阅读 · 0 评论 -
在table中添加控件
在table中添加控件_tableLabels.attach(_labelCheckGoodsNoText, 0, 1, 0, 1, Gtk::SHRINK, Gtk::SHRINK);下面的例子有点比较_tableSelectedGood.attach(*(dynamic_cast(Gtk::manage (new Gtk::Label("序号")))), 0, 1, 0, 1, Gtk::SH原创 2008-04-11 22:20:00 · 1132 阅读 · 0 评论 -
C++ string
之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用 = 进行赋值操作,== 进行比较,+ 做串联(是不是很简单?)。我们尽可以把它看成是C++的基本数据类型。好了,进入正题………首先,为了在我们的程序中使用string类型原创 2008-04-11 20:47:00 · 423 阅读 · 0 评论 -
C++ 文件是否存在
#include #include using namespace std;#define FILENAME "stat.dat"int main(){fstream _file;_file.open(FILENAME,ios::in);if(!_file){cout}else{cout}return 0;}另外一种利用 c 语言的库的办法:函数名: access功 能: 确定文件的访问权限用 法原创 2008-04-11 20:56:00 · 1571 阅读 · 0 评论 -
关于C++中的const关键字的用法
1. const常量,如const int max = 100;优点:const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查,而对后者只进行字符替换,没有类型安全检查,并且在字符替换时可能会产生意料不到的错误(边际效应)2. const 修饰类的数据成员。如:class A{const int size;…}const数据成员只在某个对象生存期内是常量,而对于整个类而言却原创 2008-04-11 21:00:00 · 456 阅读 · 0 评论 -
Random.org -- 真正的随机数生成器
接触过程序设计的人一定对随机数不陌生,随机数的用途很广,比如在测试、分布和统计程序、游戏中。大多数编程语言也提供了随机数库,可以方便的使用。不过从严格意义上来讲,这些程序生成的随机数并不是真正的随机,它们大多根据一个种子和一个固定的公式计算出“随机”值,理论上来讲这样产生的随机数列最终还是会重复,所以一般称它们为伪随机数。一般情况下,伪随机数已经够用,但是想通过程序获得严格并且严肃的统计结转载 2008-04-22 20:17:00 · 10667 阅读 · 0 评论 -
[Linux可视化编程系列一] 用 Anjuta 轻松搭建 Gtkmm+libglademm 集成开发环境(IDE)
转载连接 http://forum.ubuntu.org.cn/viewtopic.php?t=89863为什么选择GTKmm,而不是GTK+或QT? GTKmm以前又称GTK--,是用C++封装GTK+的类库,而大部分Linux发行版的默认桌面Gnome就是基于GTK+的。选择GTKmm的主观原因有三: 首先,GTKmm已经成为GTK+的官方项目的一部分,和GTK+库同步更新,可见GTK转载 2008-06-11 11:32:00 · 1283 阅读 · 0 评论 -
Linux下常用系统函数集锦
<br />一、进程控制:<br />fork 创建一个新进程<br />clone 按指定条件创建子进程<br />execve 运行可执行文件<br />exit 中止进程<br />_exit 立即中止当前进程<br />getdtablesize 进程所能打开的最大文件数<br />getpgid 获取指定进程组标识号<br />setpgid 设置指定进程组标志号<br />getpgrp 获取当前进程组标识号<br />setpgrp 设置当前进程组标志号转载 2010-09-09 21:52:00 · 834 阅读 · 0 评论