上一页 1 ··· 18 19 20 21 22 23 24 25 26 ··· 32 下一页
摘要: 2.2.2 基本数据类型 对于一般的的对象,new将对象存储在“堆”里,故用new创建一个对象———特别小的、简单的变量,往往不是很有效。因此,对于这些类型,Java采取与C和C++相同的方法,不使用new来创建,并存储在堆栈中。 Java要确定每种基本类型所占存储空间的大小。(大小不随机器硬件构架的变化而变化)。基本类型大小最小值最大值包装器类型boolean--Booleanchar16bitsUnicode oCharacterbyte8bits-128Byteshort16bits-2^15Shortint32bits-2^31Integerlong64bits-2^63Longf.. 阅读全文
posted @ 2013-09-15 20:46 wiessharling 阅读(141) 评论(0) 推荐(0) 编辑
摘要: exit函数的采用格式一般如下:exit(int);当exit函数被调用时, 程序立刻终止。任何一个整数值都可以用,但习惯上,由于错误造成的调用用1,其他情况用0. 阅读全文
posted @ 2013-09-15 13:33 wiessharling 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 1. 为什么要使用友元? 通常对于普通函数来说,要访问类的保护成员是不可能的,如果想这么做那么必须把类的成员都生命成为 public( 共用的) ,然而这做带来的问题遍是任何外部函数都可以毫无约束的访问它操作它;另一种方法是利用 C++ 的 friend 修饰符,可以让一些你设定的函数能够对这些私有或保护数据进行操作。2. 使用友元有哪些缺点? 使用友元的同时也破坏了类的封装特性,这即是友元最大的缺点。当对外声明为友元后,你的所有细节全部都暴露给了对方。就好像你告诉你朋友你很有钱这个密秘,进而又把你有多少钱,多少古董,多少家产,多少小妾等等所有的家底全给他说了。3. 友元怎样理解? 定一... 阅读全文
posted @ 2013-09-10 20:15 wiessharling 阅读(351) 评论(0) 推荐(0) 编辑
摘要: 实验室到今天才能放假,有点变态了吧?怎么说呢,虽然嘴上说得多么不好,但心里却不能否认实验室这样做给我们带来的好处。当然啦,有得必有所失,古今之不变的定律。 从毕业到现在,准确点来说,从出院到现在,怎么感觉自己已经毕业了,处于工作的状态?去实验室只有两件事:一是手头上的项目,二是弟弟的学习。而早已计划中的事情,比如要好好学习Java,C等等可以说压根没做。感觉自己难以应付这些事情了,自己做东西有点慢。 先说项目吧,一个看似很简单的系统,搞了八九个月吧,问题错漏百出,进度之慢让你可恨。深究原因如下: 1)个人原因。作为一个数学系的学生,我知道这并不能是借口,但是我很清楚,这也是我底子不好... 阅读全文
posted @ 2013-08-17 00:08 wiessharling 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 1、如果输入参数采用“指针传递”,那么加const 修饰可以防止意外地改动该指针指向的内存单元,起到保护的作用。 例如:void StringCopy(char *strDest, const char *strSrc); void OutPutString(const char *str);2、如果输入参数采用“值传递”,由于函数将自动用实参的拷贝初始化形参,因此即使在函数内部修改了该参数,改变的也只是堆栈上的拷贝而不是实参,所以一般认为不需要用const 修饰。 对于ADT/UDT的参数而言,像void Func(A a)这样声明的函数注定效率比较低。因为函数体内产生A类型的... 阅读全文
posted @ 2013-08-15 20:27 wiessharling 阅读(288) 评论(0) 推荐(0) 编辑
摘要: 之前有看过关于Assert的书,但是不懂得如何去用,最近看别人写的代码有用这个断言(assert),今天自己动手看看如何使用断言。 断言(assert)的语义如下:如果表达式的值为0(假),则输出错误消息并终止程序的执行(一般还会出现提示对话框,说明在什么地方引发了assert);如果表达式为真,则不进行任何操作。因此断言失败就表明程序存在一个bug. C++/C 的宏assert(expression)就是这样的断言,当表达式为假时,调用库函数abort()终止程序。 程序一般分为Debug版本和Release版本,前者用于内部调试,后者用于发行给用户使用。由于 assert(expr... 阅读全文
posted @ 2013-08-15 17:18 wiessharling 阅读(325) 评论(0) 推荐(0) 编辑
摘要: 注意事项如下: 1. return 语句不可返回指向"堆栈内存“的”指针“或者”引用“,因为该内存单元在函数体结束时被自动释放。//错误char* Func(void){ char str[] = "hello world"; return str;}//正确const char* Func(void){ const char* p = "hello world";//字符串常量存放在程序的静态数据区 return p;} 2. 如果函数返回值是一个对象,要考虑return 语句的效率。 例如: return String(s1 + s2); 阅读全文
posted @ 2013-08-15 16:51 wiessharling 阅读(324) 评论(0) 推荐(0) 编辑
摘要: 做开发一定会调用到自己定义或者他人定义的函数,而函数调用必须通过堆栈来完成。 函数堆栈实际上使用的是程序的堆栈内存空间,虽然程序的堆栈段是系统为程序分配的一种静态数据区,但是函数堆栈却是在调用到它的时候才动态分配的。#include "stdafx.h"#include using namespace std;class TestArrange {public: long m_lng; char m_ch1; TestArrange() { m_lng = 0; m_ch1 = 'a'; m_int = 0; m... 阅读全文
posted @ 2013-08-15 15:43 wiessharling 阅读(713) 评论(0) 推荐(0) 编辑
摘要: m_splitter = new QSplitter(Qt::Horizontal); m_splitter->addWidget(this->m_leftWidget); m_splitter->addWidget(this->m_contentWidget); QList heights; heights.push_back((14/15)*screenX); heights.push_back(screenX/15); m_splitter->setSizes(heights);// this->m_splitter->setStretchFac 阅读全文
posted @ 2013-08-09 15:15 wiessharling 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 一、两种向方法传递参数的方法:1、按值传递:产生该参数的一个副本,方法对副本的改变并不影响到原参数的值,这样就防止偶然的副作用。2、按引用传递:调用者赋予被调用方法直接访问调用者数据的能力,被调用的方法甚至还可以修改此数据。按引用调用由于消除了复制大量数据的任务,因此能够提高程序性能,但由于被调用方法能够访问调用者的数据,降低了安全性。 Java不像其他语言,它不允许程序员选择是按值调用还是按引用调用来传递每个参数。基本数据类型变量通常按值调用传递,而对象则通过按引用调用传递。引用本身是通过按值调用传递的,即将引用的副本传递给方法。二、向方法传递数组int array[] = new in.. 阅读全文
posted @ 2013-07-31 16:56 wiessharling 阅读(439) 评论(0) 推荐(0) 编辑
上一页 1 ··· 18 19 20 21 22 23 24 25 26 ··· 32 下一页