码家

Web Platform, Cloud and Mobile Application Development

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 33 下一页

2011年10月12日

摘要: 一、#include “filename.h”和#include 的区别#include “filename.h”是指编译器将从当前工作目录上开始查找此文件#include 是指编译器将从标准库目录中开始查找此文件二、头文件的作用加强安全检测通过头文件可能方便地调用库功能,而不必关心其实现方式三、* , &修饰符的位置对于*和&修饰符,为了避免误解,最好将修饰符紧靠变量名四、if语句不要将布尔变量与任何值进行比较,那会很容易出错的。整形变量必须要有类型相同的值进行比较浮点变量最好少比点,就算要比也要有值进行限制指针变量要和NULL进行比较,不要和布尔型和整形比较五、const和 阅读全文
posted @ 2011-10-12 14:31 海山 阅读(1247) 评论(0) 推荐(0)

摘要: 面向对象程序设计中的另外一个重要概念是多态性。在运行时,可以通过指向基类的指针,来调用实现派生类中的方法。可以把一组对象放到一个数组中,然后调用它们的方法,在这种场合下,多态性作 用就体现出来了,这些对象不必是相同类型的对象。当然,如果它们都继承自某个类,你可以把这些派生类,都放到一个数组中。如果这些对象都有同名方法,就可以调用每个对象的同名方法。同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性。多态性通过派生类重载基类中的虚函数型方法来实现。在面向对象的系统中,多态性是一个非常重要的概念,它允许客户对一个对象进行操作,由对象来完成一系列的动作,具体实现哪个动作、如 阅读全文
posted @ 2011-10-12 14:10 海山 阅读(170) 评论(0) 推荐(0)

摘要: 虚函数,重写。虚函数表重载多态,强制多态,包含多态,参数多态。普通函数和类的成员函数的重载属于重载多态,还有运算符重载。强制多态包括类型强制转换等。包含多态主要通过虚函数来实现。参数多态和类模板相关。C++中的多态只能通过指向基类类型的指针和引用来调用对象的虚函数来实现因为可以用派生类对象来初始化或者给基类类型的指针赋值。就是基类类型的指针所指向的对象有可能是基类型,也可能是派生类型,所以只有到运行时刻我们才知道指针所指向的对象到底是什么类型,所以当我们通过基类型的指针调用对象的虚函数时,只有判断该对象的类型后才知道调用的虚函数是哪一个类型的版本。例如 A是基类型,B是A的派生类,他们都有虚函 阅读全文
posted @ 2011-10-12 14:09 海山 阅读(2390) 评论(0) 推荐(0)

摘要: 待读 阅读全文
posted @ 2011-10-12 13:57 海山 阅读(126) 评论(0) 推荐(0)

摘要: 虚函数联系到多态,多态联系到继承。所以本文中都是在继承层次上做文章。没了继承,什么都没得谈。下面是对C++的虚函数这玩意儿的理解。一, 什么是虚函数(如果不知道虚函数为何物,但有急切的想知道,那你就应该从这里开始)简单地说,那些被virtual关键字修饰的成员函数,就是虚函数。虚函数的作用,用专业术语来解释就是实现多态性(Polymorphism),多态性是将接口与实现进行分离;用形象的语言来解释就是实现以共同的方法,但因个体差异而采用不同的策略。下面来看一段简单的代码class A{public:void print(){ cout<<”This is A”<<end 阅读全文
posted @ 2011-10-12 13:52 海山 阅读(367) 评论(0) 推荐(0)

摘要: C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚函数的使用方法,我在这里不做过多的阐述。大家可以看看相关的C++的书籍。在这篇文章中,我只想从虚函数的实现机制上面为大家 一个清晰的剖析。当然,相同的文章在网上也出现过一些了,但我总感觉这些文章不是很容易阅读,大段大段的代码,没有图片,没 阅读全文
posted @ 2011-10-12 13:47 海山 阅读(183) 评论(0) 推荐(0)

摘要: 在C++编程中使用指针能有速度快,节约内存等优点,是很多C++程序员的最爱。但指针是一把双刃剑,用好了它,你就会发现指针有多么的方便,反之,你可能就头疼了,往往会出现意想不到的问题。 一.什么是指针: 其实指针就像是其它变量一样,所不同的是一般的变量包含的是实际的真实的数据,而指针只是一个指示器,它告诉程序在内存的哪块区域可以找到数据。 这是一个非常重要的概念,有很多程序和算法都是围绕指针设计的,如链表、遍历等。 指针是一个数据类型,本身也需要占用四个字节的存储空间。所以用sizeof(void*)获得的值为4。 二.指针的定义 看如下的例子:int *pNumber; 这样就定... 阅读全文
posted @ 2011-10-12 13:37 海山 阅读(182) 评论(0) 推荐(0)

摘要: 对于众多人提出的c/c++中指针难学的问题做个总结: 指针学习不好关键是概念不清造成的,说的简单点就是书没有认真看,指针的学习犹如人在学习饶口令不多看多学多练是不行的,下面是两个很经典的例子,很多书上都有,对于学习的重点在于理解*x和x的理解,他们并不相同,*x所表示的其实就是变量a本身,x表示的是变量a在内存中的地址,如果想明白可以输出观察cout<<*x"|"x;,当定义了int *x;后对x=&a的理解的问题。仔细阅读和联系下面的两个例子我想指针问题就不是难点了!#include<stdio.h> main() { inta,b;/*定 阅读全文
posted @ 2011-10-12 13:35 海山 阅读(160) 评论(0) 推荐(0)

2011年10月11日

摘要: 什么是“引用”?申明和使用“引用”要注意哪些问题?答:引用就是某个目标变量的“别名”(alias),对应用的操作与对变量直接操作效果完全相同。申明一个引用的时候,切记要对其进行初始化。引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,不能再把该引用名作为其他变量名的别名。声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元。不能建立数组的引用。 阅读全文
posted @ 2011-10-11 14:10 海山 阅读(489) 评论(0) 推荐(0)

摘要: 待看 阅读全文
posted @ 2011-10-11 13:55 海山 阅读(141) 评论(0) 推荐(0)

摘要: 引用是C++引入的新语言特性,是C++常用的一个重要内容之一,正确、灵活地使用引用,可以使程序简洁、高效。我在工作中发现,许多人使用它仅仅是想当然,在某些微妙的场合,很容易出错,究其原由,大多因为没有搞清本源。故在本篇中我将对引用进行详细讨论,希望对大家更好地理解和使用引用起到抛砖引玉的作用。 一、引用简介 引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。 引用的声明方法:类型标识符 &引用名=目标变量名; 【例1】:int a; int &ra=a; //定义引用ra,它是变量a的引用,即别名 说明: (1)&在此不是求地址运算,而是起标识作 阅读全文
posted @ 2011-10-11 13:33 海山 阅读(268) 评论(0) 推荐(0)

摘要: 网友1:今天在编写《编程之美》上的代码,遇到了如下的问题: void function(int &array[5]) { //………… } void main() { int arr[5]={1,2,3,4,5}; function(arr); } 为什么不正确呢??求真相~~ 非常感谢网友2:void function(int &array[5])形参的... 阅读全文
posted @ 2011-10-11 13:31 海山 阅读(18746) 评论(1) 推荐(2)

摘要: 待看 阅读全文
posted @ 2011-10-11 10:49 海山 阅读(196) 评论(0) 推荐(0)

摘要: 求下面函数的返回值(微软)int func(x) { int countx = 0; while(x) { countx ++; x = x&(x-1); } return countx; } 假定x = 9999。 答案:8思路:将x转化为2进制,看含有的1的个数。求下面函数的返回值(微软) -- 统计1的个数-------------------------------------int func(int x){ int countx = 0; while(x) { countx++; x = x&(x-1); } return countx;} 假定x = 999910. 阅读全文
posted @ 2011-10-11 10:48 海山 阅读(28068) 评论(0) 推荐(2)

2011年10月10日

摘要: Max SumTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 59774Accepted Submission(s): 13593Problem DescriptionGiven a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max sum of a sub-sequence. For example, given (6,-1,5,4,-7), the max 阅读全文
posted @ 2011-10-10 15:11 海山 阅读(209) 评论(0) 推荐(0)

摘要: #include<iostream>using namespace std;#define Base 10#define MaxLen 1000struct BigInt { int len; int data[MaxLen]; BigInt() :len(0) {} BigInt(const BigInt& s) :len(s.len){ memcpy(this->data,s.data,len*sizeof(*data)); } BigInt(int s) :len(0){ for(;s>0;s=s/Base) data[len++]=s%Base; } B 阅读全文
posted @ 2011-10-10 14:33 海山 阅读(379) 评论(0) 推荐(0)

摘要: /* ====================================================================** Copyright (c) 2010 Infosys Technologies Ltd, Bangalore. All rights* reserved.** Use is subject to license terms.*/package com.apple.sqm.domain;import java.io.Serializable;/****************************************************** 阅读全文
posted @ 2011-10-10 12:36 海山 阅读(5040) 评论(0) 推荐(0)

摘要: try{ctq = ctqService.getCTQByCode(ctq);ctqParameters = ctqService.queryParametersByCtqId(ctq);}catch(Exception e){e.printStackTrace();} 阅读全文
posted @ 2011-10-10 12:35 海山 阅读(111) 评论(0) 推荐(0)

摘要: C++ Engineer (LBS Engine@Global Map Dept.)泰为信息科技(上海)有限公司查看公司简介>>粉丝团(69)公司行业:计算机软件通信/电信/网络设备公司性质:外资(欧美)公司规模:150-500人比比你的竞争力 发布日期:2011-10-10工作地点:上海招聘人数:1工作年限:一年以上语言要求:英语熟练英语熟练学历:本科职位职能:软件工程师数据通信工程师职位描述:[部门简介]为全球市场产品设计与研发高质量的基于定位服务的后台引擎。包括空间索引和搜索,多样化的路径导航服务,全球范围的地图服务,智能化的地址搜索和内容搜索服务。此外还包括海量数据处理,数 阅读全文
posted @ 2011-10-10 08:05 海山 阅读(216) 评论(0) 推荐(0)

摘要: Sr_C++_Engineer_(LBS_Engine@Global Map Dept.)泰为信息科技(上海)有限公司查看公司简介>>粉丝团(69)公司行业:计算机软件通信/电信/网络设备公司性质:外资(欧美)公司规模:150-500人比比你的竞争力 发布日期:2011-10-10工作地点:上海招聘人数:1工作年限:三年以上语言要求:英语熟练英语熟练学历:本科职位职能:高级软件工程师软件工程师职位描述:[部门简介]为全球市场产品设计与研发高质量的基于定位服务的后台引擎。包括空间索引和搜索,多样化的路径导航服务,全球范围的地图服务,智能化的地址搜索和内容搜索服务。此外还包括海量数据处 阅读全文
posted @ 2011-10-10 08:05 海山 阅读(170) 评论(0) 推荐(0)

上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 33 下一页