C++基础
沉香依旧
一点一滴的坚持,可以汇聚成大海
展开
-
VC的一些使用技巧
1、格式化一段不符合规矩的代码的快捷键:Ctrl + F82、一次注释多行代码的快捷键设置方法: 菜单栏选择“工具”,之后选择“宏”,出现下图 点击确定----选项----载入文件----确定在弹出的对话框中将simple勾选,关闭再次点击工具----宏----选项,选择SAMPLE-----CommentOut----击键按下你要原创 2014-02-25 20:04:46 · 547 阅读 · 0 评论 -
C++中前置++和后置++的区别
C++中遇到a++和++a原创 2014-07-18 17:03:14 · 4334 阅读 · 5 评论 -
C++学习心得
1.把C++当成一门新的语言学习;2.看《Thinking In C++》;3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们很难而我们自己是初学者所以就不看;4.不要被VC、BCB、BC、MC、TC等词汇所迷惑——他们都是集成开发环境,而我们要学的是一门语言;5.不要放过任何一个看上去很简单转载 2014-06-19 11:13:41 · 484 阅读 · 0 评论 -
变长字符序列string的使用
string属于标准库类型,表示可变长的字符序列。原创 2014-07-28 22:08:24 · 1251 阅读 · 0 评论 -
C++与C添加标准库头文件的形式
C++ 标准库中除了定义C++标准库的原创 2014-07-28 21:32:06 · 1203 阅读 · 0 评论 -
C++中的智能指针(smart pointer)
一、简介由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete。程序员忘记 delete,流程太复杂,最终导致没有 delete,异常导致程序过早退出,没有执行 delete 的情况并不罕见。用智能指针便可以有效缓解这类问题,本文主要讲解参见的智能指针的用法。包括:std::auto_ptr、boost::scoped_ptr、boost::share转载 2014-08-19 16:58:37 · 591 阅读 · 0 评论 -
交换两个值得分析
1、正确做法void swap(int *x,int *y){int temp = *x;*x = *y;*y = temp;}2、典型的错误做法void swap(int *x,int *y){int *temp = x;x = y;y = temp;}void swap(int x,int y){int temp =原创 2014-08-20 10:56:23 · 508 阅读 · 0 评论 -
fatal error C1010: unexpected end of file while looking for precompiled header directive
错误信息:1010:寻找预编译头文件原创 2014-09-08 18:27:15 · 512 阅读 · 0 评论 -
error LNK2001: unresolved external symbol ___glutInitWithExit@12
错误信息:GG.OBJ : error LNK2001: unresolved external symbol ___glutInitWithExit@12GG.OBJ : error LNK2001: unresolved external symbol ___glutCreateWindowWithExit@8原创 2014-09-08 18:30:45 · 614 阅读 · 0 评论 -
数组设置初试、动态数组的申请与释放
1、占用空间较大的数组,如何快熟的实现赋值使用与内存操作相关的C++系统函数memcpymemcpy(*dst,*src,int n) 例子:T *region //T 为类型 可为基本类型 自定义类型 ;region为已经赋值的对象或者指针 T *flag //flag为待赋值对象或者指针 memcpy(r原创 2014-03-26 18:16:35 · 814 阅读 · 0 评论 -
C++中的引用
引用是一种复合类型(compound type),我们通常所说的引用为左值引用(lvalue reference),C++11中新增加了一种引用,叫做右值引用(rvalue reference),这种引用主要用于内置类中,稍后介绍,今天主要讲我们通常说的引用,也就是左值引用。引用,其实是为对象另起一个名字。 通过&定义,当然引用定义的时候必须初始化原创 2014-04-02 17:37:00 · 465 阅读 · 0 评论 -
VC++ Unable to register this add-in because its DllRegisterServer returns an error 解决方案
1.下载VC6LineNumberAddin插件及注册文件。(以下是参考链接:) http://codefish.googlecode.com/files/VC%E6%98%BE%E7%A4%BA%E8%A1%8C%E5%8F%B7_VC6LineNumberAddin.rar 2.解压把拷贝VC6LineNumberAddin.dll到VC6安装路径下的AddIns文件夹,笔者的完整转载 2014-02-25 20:10:57 · 734 阅读 · 0 评论 -
Debug和Release的区别
Debug版本包括调试信息,所以要比Release版本大很多(可能大数百K至数M)。至于是否需要DLL支持,主要看你采用的编译选项。如果是基于ATL的,则Debug和Release版本对DLL的要求差不多。如果采用的编译选项为使用MFC动态库,则需要MFC42D.DLL等库支持,而Release版本需要MFC42.DLL支持。Release Build不对源代码进行调试,不考虑MFC的诊断宏,转载 2014-02-26 14:36:26 · 477 阅读 · 0 评论 -
C++中数据的存储形式
一般来说,写程序就是跟数据打交道,执行某一功能程序时,就是将该功能所需要的数据加载到内存中,然后在执行完毕后释放该内存。数据在内存中的存放形式有:栈区—— 由编译器自动分配和释放,一般存放函数的参数值、局部变量的值堆区——一般由程序员分配和释放,如果程序员不释放,程序结束的时候由操作系统回收寄存器区——用来保存栈顶指针和指令指针全局区(静态区)——用来存放全局变量和静态变量。初始化原创 2014-03-03 19:09:59 · 2383 阅读 · 0 评论 -
指针初步知识
指针是用来保存内存地址的变量,需要注意以下几点:分清楚指针的地址,指针保存的地址、指针保存的地址的数值定义一个指针后需要用他来保存一个内存地址,否则,该指针就是一个迷途指针。迷途指针可指向任意一个地址,并且对该地址的值进行更新,可能会造成意想不到的后果若要将指针指向堆,需要使用关键字new来申请堆中的地址,堆中的变量都是匿名的,只能通过指针来访问,待堆中的变量使用完成,则需要使用关键字原创 2014-03-03 19:36:53 · 539 阅读 · 0 评论 -
指针作为函数返回值需要注意的情况
指针作为函数的返回值,会遇到的误解问题#includeint *buffer();int main(){ int *p = buffer(); int i; for(i = 0;i {p[i] = i;printf("%d ",p[i]); }return 0;}int *buffer(){int a[100];re原创 2014-02-28 10:09:09 · 941 阅读 · 0 评论 -
struct结构体占内存大小计算
注意:struct 的{}后面要加上 ”;“#includestruct A{ int a; double b; char c;};struct B{ double b; char c; int a;};struct转载 2014-03-31 17:08:31 · 1094 阅读 · 0 评论 -
C++标准库简介
C++标准库的所有头文件都没有扩展名。C++标准库的内容总共在50个标准头文件中定义,其中18个提供了C库的功能。 形式的标准头文件【 例外】其内容与ISO标准C包含的name.h头文件相同,但容纳了C++扩展的功能。在 形式标准的头文件中,与宏相关的名称在全局作用域中定义,其他名称在std命名空间中声明。在C++中还可以使用name.h形式的标准C库头文件名。 C++标准库的内容分为10转载 2014-11-13 22:20:55 · 458 阅读 · 0 评论