随笔分类 -  C++12.02

摘要:友元函数和友元类采用类的机制后实现了数据的隐藏与封装,类的数据成员一般定义为私有成员,成员函数一般定义为公有的,依此提供类与外界间的通信接口。但是,有时需要定义一些函数,这些函数不是类的一部分,但又需要频繁地访问类的数据成员,这时可以将这些函数定义为该函数的友元函数。除了友元函数外,还有友元类,两者统称为友元。友元的作用是提高了程序的运行效率(即减少了类型检查和安全性检查等都需要时间开销),但它破坏了类的封装性和隐藏性,使得非成员函数可以访问类的私有成员。友元函数:友元函数是可以直接访问类的私有成员的非成员函数。它是定义在类外的普通函数,它不属于任何类,但需要在类的定义中加以声明,声明时只需在 阅读全文

posted @ 2012-04-29 21:02 无忧consume 阅读(219) 评论(0) 推荐(1) |

摘要:在VS2008 VC++项目中,新建了一个cpp文件,然后在物理硬盘上手动删除了,或是手动移动了地址,就出现如下错误。1>------ Build started: Project: test, Configuration: Debug Win32 ------1>Compiling...1>random.cpp1>c1xx : fatal error C1083: Cannot open source file: '.\XX.cpp': No such file or directory解决方法是:到项目文件test.vcproj 中找到下面一段代码, 阅读全文

posted @ 2012-04-28 23:12 无忧consume 阅读(581) 评论(0) 推荐(0) |

摘要:VS2008 一个不产生窗口的Win32程序,代码如下:[cpp]#include <windows.h>int APIENTRY _tWinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPTSTR lpCmdLine,int nCmdShow){ return 0;}[/cpp]编译后产生如下错误:1>MSVCRTD.lib(crtexew.obj) : error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCRTStartup 中被引用1>E:\work\Wind 阅读全文

posted @ 2012-04-28 11:05 无忧consume 阅读(2812) 评论(0) 推荐(0) |

摘要:#include <iostream>using namespace std;struct vertex{ int x; int y; int z; // Input and Output friend std::ostream& operator<<(std::ostream& os, const vertex& vo); };std::ostream&operator<<(std::ostream& os, const vertex& vo){ return os << "<&q 阅读全文

posted @ 2012-04-27 22:54 无忧consume 阅读(220) 评论(0) 推荐(0) |

摘要:修饰符,修饰符控制范围和使用范围 类修饰符:public,protected,private,缺省的访问修符,abstract,final域的修饰符:public,protected,private,static,final,transient,volatile 方法修饰符:public,protected,private,static,final,abstract,native,synchronized类访问修饰符修饰符class类名称[extends父类名称implement接口名称]{成员变量定义;构造函数定义;成员方法定义;}注:访问修饰符与修饰符的位置可以互换类修饰符访问控制修饰符: 阅读全文

posted @ 2012-04-17 01:33 无忧consume 阅读(666) 评论(0) 推荐(0) |

该文被密码保护。

posted @ 2012-03-25 14:52 无忧consume 阅读(1) 评论(0) 推荐(0) |

摘要:第一步,先运行这个软件(就是生成的EXE),把他的各个功能都试一下;第二步,将代码按各个功能模块分组(自己在工程中建目录管理);第三步,按功能模块单个阅读代码(同时自己增加注释);第四步,调试运行各个功能模块(同时自己增加注释)。 利器:调试 阅读全文

posted @ 2012-03-19 16:08 无忧consume 阅读(178) 评论(0) 推荐(0) |

摘要:一般stl中要是不是普通数据类型,用指针更优效一点。为了防止偷偷的拷贝构造函数 阅读全文

posted @ 2012-03-16 19:57 无忧consume 阅读(156) 评论(0) 推荐(0) |

摘要:http://www.cnblogs.com/cxun/archive/2007/05/05/736208.html一、生成DLL1.新建DLL工程生成DLL可以多种方法,这里介绍一种。在VS中,新建一个空的项目,选Win32 Console Application,新建完后修改工程属性:把生成EXE改为生成DLL2.源代码:#include <iostream>#include <windows.h>using namespace std;#ifdef __cplusplus// if used by C++ codeextern "C" {// 阅读全文

posted @ 2012-03-15 12:10 无忧consume 阅读(381) 评论(0) 推荐(0) |

摘要:#include <stdio.h>#include <stdlib.h>#include <string.h> void main() { char filename[16] = "MHT"; char *type = ".txt"; char str[4]; int i = 10; itoa(i, str, 10); printf("%s %d\n", filename, sizeof(filename)); //sizeof 全部长度 printf("%s %d\n", f 阅读全文

posted @ 2012-03-14 23:44 无忧consume 阅读(185) 评论(0) 推荐(0) |

摘要:#include <string.h>#include <stdio.h>int main(){ char a[30] = "string (a)"; char b[30] = "hi\0zengxiaolong"; int i;strcpy(a, b); //a[30] = "hi\0ing (a)" printf("strcpy():"); for(i = 0; i < 30; i++) printf("%c", a[i]); //hiing (a)memcpy 阅读全文

posted @ 2012-03-14 22:04 无忧consume 阅读(196) 评论(0) 推荐(0) |

摘要:http://blog.pfan.cn/cracker007/17239.html初学者经常被这个问题所困惑: char *p="abc"==>"abc"是一个const char*,为什么能够赋值给char *? 按照 C/C++ 标准的描述,"abc" 是 string literal (字符字面量、字符文字量),具有静态存储性质,类型是数组类型,并且不能被改变。注意:"abc" 是一个数组类型的对象,是左值。当然左值可以转化为右值使用,就像数组类型的对象可以转化为指针一样。虽然 "abc&qu 阅读全文

posted @ 2012-03-13 13:42 无忧consume 阅读(352) 评论(0) 推荐(0) |

该文被密码保护。

posted @ 2012-03-13 11:43 无忧consume 阅读(1) 评论(0) 推荐(0) |

摘要:大多数情况下都是vc安装的问题试试下面的方法吧:(转的)Compiling...Error spawning cl.exe3-6.exe - 1 error(s), 0 warning(s)可能很多人在安装VC 6.0后有过点击“Compile”或者“Build”后被出现的“Compiling... ,Error spawning cl.exe”错误提示给郁闷过。很多人的选择是重装,实际上这个问题很多情况下是由于路径设置的问题引起的,“CL.exe”是VC使用真正的编译器(编译程序),其路径在“VC根目录\VC98\Bin”下面,你可以到相应的路径下找到这个应用程序。因此问题可以按照以下方法解 阅读全文

posted @ 2012-03-11 23:27 无忧consume 阅读(357) 评论(0) 推荐(0) |

摘要:字体太小,看着不爽,决定改大一点。在VS界面 工具->选项—>环境->字体和颜色里 ,自己设置一下大小 Consolas是一种专门为编程人员设计的字体,这一字体的特性是所有字符都具有相同的宽度,让编程人员看着更舒服,当然在打个人和商业信函的时候,用这个字体也是不错的选择,这一字体还专门为ClearType做了优化,可以让它更舒适地展示在萤幕上.这一字体仅仅授权给Microsoft Visual Studio 2005和2008用户,安装后将改变默认字体. Consolas Font Pack for Microsoft Visual Studio 2005 or 2008 怎 阅读全文

posted @ 2012-03-02 15:08 无忧consume 阅读(862) 评论(0) 推荐(0) |

摘要:http://blog.sina.com.cn/s/blog_69c961b70100l260.html在软件开发中“网络编程”是必不可少的基本功了;本文所讲的Socket编程也就是网络编程中的一种形式;当然你如果想问我什么叫“Socket”,很遗憾的是我也不能准确的告诉你!但我们可以确定的是Sock并不是一种网络协议,它只是一个网络编程接口,也就是说,它不是协议,但是它可以访问很多种网络协议,你可以把他当作一些协议的封装。Socket编程涉及Socket服务端与客户端编程;与VC6下的Socket编程一样(VC6用ws2_32.lib库,而WinCE则用Ws2.lib库),服务端与客户端编程 阅读全文

posted @ 2012-03-02 14:20 无忧consume 阅读(532) 评论(0) 推荐(0) |

摘要:cannotopenfile'LIBC.lib'对于这个错误在VS2005中,可以通过如下方式解决:项目-->项目属性-->配置属性-->连接器-->输入-->忽略特定库在弹出的框中加入LIBC.LIB就可以通过编译了,但是似乎还有些问题没有解决,因为最终编译出来的结果是差了一点东西的。libc.lib原来是被遗弃的可怜家伙。Run-Time Library是编译器提供的标准库,提供一些基本的库函数和系统调用。我们一般使用的Run-Time Library是C Run-Time Libraries。当然也有Standard C++ librarie 阅读全文

posted @ 2012-03-02 14:20 无忧consume 阅读(518) 评论(0) 推荐(0) |

摘要:C++经典错误之already defined in *****.obj解决方法我的程序是如下形状:一个头文件.h,一个主函数.cpp,一个操作函数.cpp。操作函数包含头文件,然后主函数包含操作函数.cpp。运行时出现错误:错误症状:Linking...xz.obj : error LNK2005: "public: __thiscall XZ::XZ(void)" (??0XZ@@QAE@XZ) already defined in xzmain.objxz.obj : error LNK2005: "public: void __thiscall XZ::p 阅读全文

posted @ 2012-03-02 14:16 无忧consume 阅读(870) 评论(0) 推荐(0) |

摘要:VS2005的MFC Class Wizard哪去了在VS2005中拆分成两个功能:(1)、对控件和菜单建立事件映射的功能;可以通过在资源视图(通过双击资源文件*.rc可进入该视图),右键某一个菜单或者控件,在弹出的菜单中选择“添加事件处理程序;(2)、添加窗体的消息映射;在类视图(通过菜单“视图->类视图 Ctrl+W,C”可以进入)上双击类,然后在类上右键,选择“属性”菜单,进入属性界面,在属性界面上边有几个事件、消息的按钮,点击消息后选择具体创建的消息即可。该功能比较隐蔽,用起来感觉不是很方便。本文引用地址:http://www.sciencenet.cn/blog/user_co 阅读全文

posted @ 2012-03-02 14:14 无忧consume 阅读(233) 评论(0) 推荐(0) |

摘要:关键词: MFC 多线程及线程同步 VC++6.0; 线程同步;临界区;事件;互斥;信号量; 使线程同步 在程序中使用多线程时,一般很少有多个线程能在其生命期内进行完全独立的操作。更多的情况是一些线程进行某些处理操作,而其他的线程必须对其处理结果进行了解。正常情况下对这种处理结果的了解应当在其处理任务完成后进行。 如果不采取适当的措施,其他线程往往会在线程处理任务结束前就去访问处理结果,这就很有可能得到有关处理结果的错误了解。例如,多个线程同时访问同一个全局变量,如果都是读取操作,则不会出现问题。如果一个线程负责改变此变量的值,而其他线程负责同时读取变量内容,则不能保证读取到的数据是经过写.. 阅读全文

posted @ 2012-03-02 14:11 无忧consume 阅读(366) 评论(0) 推荐(1) |

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3