随笔分类 -  C++随笔

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

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) |

该文被密码保护。

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) |

摘要:大多数情况下都是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) |

该文被密码保护。

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

该文被密码保护。

posted @ 2012-02-21 10:13 无忧consume 阅读(0) 评论(0) 推荐(0) |

摘要:类(class) {}; 定义了类就定义了新类型,类名就是类型的名字 类内的成员可以访问类内的任何成员 定义类class和struct仅仅是访问默认权限的区别 阅读全文

posted @ 2012-02-08 21:01 无忧consume 阅读(101) 评论(0) 推荐(0) |

摘要:c++是一门静态类型语言,在编译时会做类型检查 左值: 可以出现在赋值语句左边或右边 右值: 可以出现在赋值语句的右边,不能出现在左边赋值初始化,直接初始化差别很微妙的(13章): 复制初始化(copy-initialization) 用等号(=) int a = 10; 直接初始化(direct-initialization) 放在括号中 int a(10); 更灵活,效率高 p42 一般来讲,赋值初始化,右侧会涉及到构造初始函数,之后在赋值给左侧(以类为鉴) 类一般有默认够着函数,以string类为例,string类定义了默认的够着函数来初始化string变量为空字符串,即... 阅读全文

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

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