上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 58 下一页
  2013年8月14日
摘要: 模板定义:模板就是实现代码重用机制的一种工具,它可以实现类型参数化,即把类型定义为参数, 从而实现了真正的代码可重用性。模版可以分为两类,一个是函数模版,另外一个是类模版。由于类模板包含类型参数,因此又称为参数化的类。如果说类是对象的抽象,对象是类的实例,则类模板是类的抽象,类是类模板的实例。1.模板的概念模板定义函数模板:template T fun_name(const T&, const T&);类模板:template class class_name { public: T t; void test(const T& t); }模板规则类模板作用域... 阅读全文
posted @ 2013-08-14 14:37 猿人谷 阅读(652) 评论(0) 推荐(1) 编辑
摘要: 1.gets()函数问:请找出下面代码里的问题:#includeintmain(void){charbuff[10];memset(buff,0,sizeof(buff));gets(buff);printf("\nThebufferenteredis[%s]\n",buff);return0;}答:上面代码里的问题在于函数gets()的使用,这个函数从stdin接收一个字符串而不检查它所复制的缓存的容积,这可能会导致缓存溢出。这里推荐使用标准函数fgets()代替。2.strcpy()函数问:下面是一个简单的密码保护功能,你能在不知道密码的情况下将其破解吗?#includ 阅读全文
posted @ 2013-08-14 14:33 猿人谷 阅读(466) 评论(0) 推荐(0) 编辑
摘要: 来源:http://www.cnblogs.com/feisky/archive/2010/03/05/1679160.htmlC/C++是最主要的编程语言。这里列出了50名优秀网站和网页清单,这些网站提供c /c++源代码 。这份清单提供了源代码的链接以及它们的小说明。我已尽力包括最佳的C/C++源代码的网站。这不是一个完整的清单,您有建议可以联系我,我将欢迎您的建 议,以进一步加强这方面的清单。添加:http://www.boost.org/1、http://snippets.dzone.com/tag/c/--数以千计的有用的C语言源代码片段2、http://www.hotscripts 阅读全文
posted @ 2013-08-14 14:21 猿人谷 阅读(738) 评论(2) 推荐(1) 编辑
摘要: 来源:http://www.cnblogs.com/feisky/archive/2009/11/04/1595990.html最近又重新看了Effective C+,不过到现在还是有好多地方不懂的,先记下笔记,待用的时候再细细琢磨。条款1:尽量用const和inline而不用#define这个条款最好称为:“尽量用编译器而不用预处理”,因为#define经常被认为好象不是语言本身的一部分。用 const的好处是,调试时,可以直接获取变量,而非定义的数字,这个在使用gdb跟踪代码的时候很有用,比如#define NUM 123;如果在gdb中print NUM,会出现NUM找不到符号表的问题, 阅读全文
posted @ 2013-08-14 14:19 猿人谷 阅读(502) 评论(0) 推荐(0) 编辑
摘要: 前段时间重新学习C++,主要看C++编程思想和C++设计新思维。对模版的使用有了更进一层的了解,特总结如下:下面列出了模版的常用情况://1. 模板类静态成员template struct testClass { staticint _data; }; templateint testClass::_data =1; templateint testClass::_data =2; int main( void ) { cout ::_data) ::_data) struct testClass { testClass() { cout struct testClass{ testC... 阅读全文
posted @ 2013-08-14 14:13 猿人谷 阅读(495) 评论(0) 推荐(0) 编辑
  2013年8月13日
摘要: 1.为什么要引入虚拟继承虚拟继承是多重继承中特有的概念。虚拟基类是为解决多重继承而出现的。如:类D继承自类B1、B2,而类B1、B2都继 承自类A,因此在类D中两次出现类A中的变量和函数。为了节省内存空间,可以将B1、B2对A的继承定义为虚拟继承,而A就成了虚拟基类。实现的代码如 下:class Aclass B1:public virtual A;class B2:public virtual A;class D:public B1,public B2;虚拟继承在一般的应用中很少用到,所以也往往被忽视,这也主要是因为在C++中,多重继承是不推荐的,也并不常用,而一旦离开了多重继承,虚拟继承就 阅读全文
posted @ 2013-08-13 15:03 猿人谷 阅读(15339) 评论(1) 推荐(2) 编辑
  2013年8月12日
摘要: C++重要知识点小结--1 :http://www.cnblogs.com/heyonggang/p/3246631.html1.C++允许程序员声明一个不能有实例对象的类,这样的类惟一的用途是被继承。这种类成为抽象类。一个抽象类至少具有一个纯虚函数。所谓纯虚函数是指被标明为不具体实现的虚成员函数。如:virtual void WithDrawal(float amount) = 0; //纯虚函数在WithDrawal()的声明之后的“=0”表明程序员将不定义该函数。该声明是为派生类而保留的位置。一个抽象类不能有实例对象,即不能由该类抽象来制造一个对象。纯虚函数是在基类中为子类保留的一个位. 阅读全文
posted @ 2013-08-12 15:39 猿人谷 阅读(5690) 评论(0) 推荐(0) 编辑
摘要: 一个静态成员函数不与任何对象相联系,故不能对非静态成员进行默认访问。它们的根本区别在于静态成员函数没有this指针,而非静态成员函数有一个指向当前对象的指针this。例如: 1 class Sc 2 { 3 public: 4 void nsfn(int a); //像声明Sc::nsfn(Sc *this , int a); 5 static void sfn(int a); // 无this指针 6 //.... 7 }; 8 9 void f(Sc &s)10 {11 s.nsfn(10); // 转换为Sc::nsfn(&s , 10)12 ... 阅读全文
posted @ 2013-08-12 10:58 猿人谷 阅读(12861) 评论(0) 推荐(0) 编辑
  2013年8月10日
摘要: 指针、引用和取值什么是指针?什么是内存地址?什么叫做指针的取值?指针是一个存储计算机内存地址的变量。在这份教程里“引用”表示计算机内存地址。从指针指向的内 存读取数据称作指针的取值。指针可以指向某些具体类型的变量地址,例如int、long和double。指针也可以是void类型、NULL指针和未初始 化指针。本文会对上述所有指针类型进行探讨。根据出现的位置不同,操作符 * 既可以用来声明一个指针变量,也可以用作指针的取值。当用在声明一个变量时,*表示这里声明了一个指针。其它情况用到*表示指针的取值。&是地址操作符,用来引用一个内存地址。通过在变量名字前使用&操作符,我们可以得到 阅读全文
posted @ 2013-08-10 21:27 猿人谷 阅读(709) 评论(0) 推荐(1) 编辑
摘要: 来源:http://c.chinaitlab.com/basic/936306_2.html 一 C++内存管理1.内存分配方式 在讲解内存分配之前,首先,要了解程序在内存中都有什么区域,然后再详细分析各种分配方式。1.1 C语言和C++内存分配区 下面的三张图,图1图2是一种比较详细的C语言的内存区域分法。图3是典型的C++内存分布图,简单易懂;以下内存分配图,区别就是图1和2则分为初始化和未初始化静态变量区,图3中是全局变量区。 C语言(图1和图2):(由低地址到高地址) a)正文段:用来存放程序执行代码。通常,正文段是可共享的。另外,正文段常常是只读的,一次防止程序由于意外修改其... 阅读全文
posted @ 2013-08-10 16:15 猿人谷 阅读(3911) 评论(0) 推荐(3) 编辑
上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 58 下一页