c/c++基础
文章平均质量分 62
threewells_14
这个作者很懒,什么都没留下…
展开
-
从一个修改私有变量的问题想到的
前几天,在论坛里看到一个帖子,内容是:(原帖见:http://community.csdn.net/Expert/topic/5014/5014384.xml?temp=.3018152)========================================class a{private:int k;};要求不用友元,不在这个类里添加任何代码,去访问成员变量k。能做出的高手,请贴出完整源转载 2006-12-09 15:51:00 · 876 阅读 · 0 评论 -
多网卡发送数据包
方法一:使用libnet,这里就不介绍了方法二:使用原始套接字>>>>指定网卡发送数据的时候不需要指定网卡IP,只要设置struct ifreg ifr.ifr_name就可以了。>>例如:>> struct ifreq ifr;>> fd = socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL));>> memset(&ifr, 0, siz转载 2008-01-01 12:04:00 · 1164 阅读 · 0 评论 -
C程序设计的常用算法
算法(Algorithm):计算机解题的基本思想方法和步骤。算法的描述:是对要解决一个问题或要完成一项任务所采取的方法和步骤的描述,包括需要什么数据(输入什么数据、输出什么结果)、采用什么结构、使用什么语句以及如何安排这些语句等。通常使用自然语言、结构化流程图、伪代码等来描述算法。 一、计数、求和、求阶乘等简单算法 此类问题都要使用循环,要注意根据问题确定循环变量的初值、终值或结束条转载 2007-11-13 22:01:00 · 521 阅读 · 0 评论 -
字符串拷贝
void test(char * str1){ char string[1]; strcpy(string, str1); cout }int main(int argc, char* argv[]){ test("abc"); return 0;}申请的string字符数组虽然只有1个字节,但是由于编译器的内存对齐原则,他会补上到4个字节,向内存申请4个字节。这样运行上面程序,str1是原创 2007-05-17 19:49:00 · 682 阅读 · 0 评论 -
C++虚拟继承
就是为了解决面相对象中继承结构中可怕的菱形结构 。下面是别人的,看看就懂了。从意义上来看,一个SleeperSofa没有沙发和床两种重量, 如此的继承不是真实的现实世界描述。进一步分析可得,床和沙发都是家具的一种,凡家具都有重量,所以通过分解来考察其关系,如图17—2所示。 screen.width-500)this.style.width=screen.width-500;" alt="转载 2007-05-12 11:45:00 · 886 阅读 · 0 评论 -
unsigned keyword
dunsigned char,无符号字符类型,取值范围是(0-255)。看下一个例子: int main() { unsigned char i=255; printf("%d/n",i); printf("%d/n",++i); return 0; } i加1后,值不是256,而是0 就是没有符号的意思 说白了,就都是正数 由于在计算机中,整数是以补码形式存放的 所以根据最高位的不同 如果是1,原创 2007-05-12 09:18:00 · 591 阅读 · 0 评论 -
指针参数是如何传递内存的?
如果函数的参数是一个指针,不要指望用该指针去申请动态内存。示例7-4-1中,Test函数的语句GetMemory(str, 200)并没有使str获得期望的内存,str依旧是NULL,为什么? void GetMemory(char *p, int num) {原创 2007-05-08 10:21:00 · 646 阅读 · 0 评论 -
Observer设计模式的陷阱,兼谈C++语言在模式面前的悲哀
前几天,刚写的一个软件崩溃了。跟踪发现是下面函数的问题:void CSubject::OnMsg(CSMSG *pMsg){ for(list::iterator it = m_lstMsgListener.begin(); it != m_lstMsgListener.end(); it ++) { ASSERT( NULL != (*it) );转载 2007-04-25 13:54:00 · 656 阅读 · 0 评论 -
JAVA 23设计模式一点就通
一、创建型模式 FACTORY?人才市场:以往是要哪个人才,就找哪个人才,效率低,现在有了人才市场,我们只需直接去人才市场挑一个好了; BUILDER?生产流水线:以前是手工业作坊式的人工单个单个的生产零件然后一步一步组装做,好比有了工业革命,现在都由生产流水线代替了。如要造丰田汽车,先制定汽车的构造如由车胎、方向盘、发动机组成。再以此构造标准生产丰田汽车的车胎、方向盘、发动机。然后进行转载 2007-02-24 20:59:00 · 600 阅读 · 0 评论 -
接上
1. char *c1 = "abc"; 2. char c2[] = "abcd"; 3. char *c3 = ( char* )malloc(4); 4. c3 = "abc" 5. strcpy(c3,"1234"); 6. c3[0] = g; 分析: 1。上面代码中的 字符串常量 "abc","abcd","1234",都是存放在所谓的文字常量区; 2。c1,c2,c3 这个三变量转载 2007-02-22 10:38:00 · 585 阅读 · 0 评论 -
c++中char * 和 char []的区别
问题引入:在实习过程中发现了一个以前一直默认的错误,同样char *c = "abc"和char c[]="abc",前者改变其内容程序是会崩溃的,而后者完全正确。程序演示:测试环境Devc++代码#include using namespace std;main(){ char *c1 = "abc"; char c2[] = "abc"; char *c3 = ( char转载 2007-02-22 10:19:00 · 798 阅读 · 0 评论 -
学习点滴
1。静态成员函数里的静态成员变量要先声明。2。在一个静态成员函数中不能引用非静态的数据成员。3。atexit()函数,是程序结束时的相应函数。原创 2007-02-24 20:21:00 · 575 阅读 · 0 评论 -
各种工厂模式
一、 序言 在所有已知的各种模式中,最重要的和应用范围最广泛的模式应该就是隶属于创建型模式工厂模式了。尤其是在Framework的编程中使用更为广泛,毫不夸张的讲几乎任何一个优秀框架中都有工厂模式的影子。 工厂模式虽然结构比较简单,却集中体现了面向对象设计中最重要的几个特性, 面向抽象、封装、委托、继承、多态在工厂模式中都有很好的体现。 其实说起工厂模式相信大家都不会觉转载 2007-02-24 20:48:00 · 870 阅读 · 0 评论 -
括号匹配源代码
#include#include#define FAIL -1#define SUCCESS 0char *next_token(char *s){ while(*s!=/0&&*s!=[&&*s!=]&&*s!=(&&*s!=)&&*s!={&&*s!=}) s++; return s;}char UnChange(char *s ) {转载 2006-12-13 20:30:00 · 974 阅读 · 0 评论 -
用gdb调试C++程序时打印变量的值
如果这个值是本地变量,那么没有任何的问题。gud-tooltip-mode也能正确显示。不过如果是类里的成员,有的时候就麻烦了。据我目前的观察,有的时候gdb可以正确的找到当前类的继承关系,可以直接使用this来访问相关信息:p *this: 打印出当前类里所有的成员的值p this->member: 打印出当前类里的某个成员的值ptype this: 打印出当前类里所有的成员(原型)whatis转载 2008-05-07 14:22:00 · 6753 阅读 · 1 评论