(分不够啊。。)VC怎么判断一个new对象是否已经存在?

作者&投稿:蓝复 (若有异议请与网页底部的电邮联系)
在C++语言当中,如何判断一个对象为空?~

  C++语言中,对象没有空和不空的概念,只有对象指针才有空和不空的概念
  判断对象指针是否为空只需要和NULL常量进行比较即可
  如果相等,则为空,否则不为空
  另外对象虽然没有空和不空的概念,但是有有效和无效的概念
  当对象的析构函数被调用之后,对象即成为一个无效对象
  一般可以用句柄法来判断
  当对象被构造的时候,在一个全局的映射表中注册该对象,获得一个唯一句柄
  判断的时候,用对象的句柄信息直接在映射表中进行查找,如果存在,则有效;如果不存在则无效
  析构对象的时候,同时从映射表中删除该对象的句柄信息

C++的类指的就是class, 而struct(结构体)union(联合)都是C语言里的。
在C++中, 用 "类" 来描述 "对象", 所谓的"对象"是指现实世界中的一切事物。那么类就可以看做是对相似事物的抽象, 找到这些不同事物间的共同点, 如自行车和摩托车, 首先他们都属于"对象", 并且具有一定得相同点, 和一些不同点, 相同点如他们都有质量、都有两个轮子, 都是属于交通工具等。"都有质量"、"两个轮子"属于这个对象的属性, 而"都能够当做交通工具"属于该对象具有的行为, 也称方法。

类是属于用户自定义的数据类型, 并且该类型的数据具有一定的行为能力, 也就是类中说描述的方法。通常来说, 一个类的定义包含两部分的内容, 一是该类的属性, 另一部分是它所拥有的方法。以 "人类" 这个类来说, 每个人都有自己的姓名、年龄、出生日期、体重等, 为 人类 的属性部分, 此外, 人能够吃饭、睡觉、行走、说话等属于人类所具有的行为。

上面举例中所描述的 "人" 类仅仅是具有人这种对象的最基础的一些属性和行为, 可以称之为人的"基类"。 再说说一些具有一些职业的人, 例如学生, 一个学生还具有"基类"中所没有的属性, 如学校、班级、学号; 也可以具有基类所不具有的行为, 如每天需要去上课, 需要考试等。

学生类可以看做是基类的一个扩展, 因为他具有基类的所有属性和行为, 并且在此基础上增加了一些基类所没有的属性和行为, 像"学生"这样的类称为"人类"这个基类的"派生类"或者"子类"。在学生的基础上海可以进一步的扩展出其他更高级的类, 如"研究生"类。

直接delete是无法判断的,所以需要手动将指针设为NULL.写一个宏FREE
#define FREE(x) if (x) { delete x; x=NULL; }
删除时调用FREE(x),在创建时 :
if (psocket == NULL)
psocket = new CSocket();
声明psocket时,使用CSocket *psocket = NULL;保证psocket值为NULL.

1、初始化为NULL:CSocket *psocket = NULL;
2、判断是否存在:if(CSocket *psocket == NULL)
psocket = new CSocket();//不存在则new
3、delete:
if(CSocket *psocket != NULL)
{
delete psocket;
psocket = NULL;
}
这样就能保证你的对象如存在则不为NULL,否则为NULL.


测定vc有哪几种方法,每种方法的使用范围是什么?
维生素C不同的测定方法目前研究维生素C测定方法的报道较多,有关维生素C的测定方法如荧光法、2,6-二氯靛酚滴定法、2,4-二硝基苯肼法、光度分析法、化学发光法、电化学分析法及色谱法等,各种方法对实际样品的测定均有满意的效果.为了解国内VC含量测定方法及其应用方面的现状及发展态势.方法以"维生素C或抗坏血酸和测...

(3分)人体缺乏维生素C(简写“Vc”)会患坏血病。下图所示为某种“维生素...
(1)有机 (2)9∶1∶12 (3)2 试题分析:因为维生素C的化学式中含有碳元素,故(1)“Vc”属于有机化合物;(2)“Vc”中C、H、O三种元素的质量比是12×6:1×8:16×6=)9∶1∶12;(3)若正常成人每天对“Vc”的最低需要量为60mg:所以每天的用量为60mg÷(100mg\/片×...

如何分清VC和PE在股权投资上的区别
VC是指创业初期的企业,有一些甚至只是有idea没有产品的,VC主要是选优质项目投资,一半投资额在20-200w之间,后期项目上线也可能后续追加投资。PE是指股权投资,一半股权投资的投资标的都是待上市公司或者已上市公司并购重组项目,这类一般投资额比较大,小则几千万,多则几亿。

vc新手的问题55555,谢谢`(悬赏分没人注意,一定追加的!!)
2004 年 3 月 \/ --- 介绍 --- aClock 多变小闹钟是一款计算机模拟的闹钟程序,不仅有显示时间、校对时 间和整点报时的功能,还可以设置任意个事件提示,支持定时启动外挂程序 和定时关机。有多款外观Skin可以选择,还可以选择使用数字式还是指针式 表盘。aClock 多变小闹钟不使用系统注册表存储配置...

谁有vc做的图像分割的程序啊
咳,这么多天了还没人响应,怪可怜的!下面是是何斌等编著的VC++图像处理一书中的代码,图像阀值分割法,代码较清晰可供学习,你也可对其中取像素的语句作些优化以加快速度:\/ 函数名称:ThresholdDIB()参数:LPSTR lpDIBBits - 指向源DIB图像指针 LONG lWidth - 源图像宽度(象素数)LONG ...

散分: 如何用VC生成以下格式的xml文件...
如果不需要操纵xml文件 直接用CFile好了 步骤 1.创建一个CFile对象 2.调用Open()函数, 把路径设为你需要保存的路径(包含文件名),里面有个参数是设置,如果没有这个文件,就创建他。这样就可以在指定路径创建一个xml文件。3.这时候,xml文件的内容是空的,所以 open()以后,你需要往里面写内容....

...所示为某种“维生素C”说明书的一部分,请回答 (1)Vc中C
(1)9∶1∶12;(2)①2;② 500;③红。 分析:(1)根据标签中维生素C的化学式,利用各元素的相对原子质量进行计算;(2)①根据正常成人每天需要Vc的最低量及标签中每片药片中Vc含量、服用方法,计算每少的服用量;②根据正常成人每天需要Vc的最低量及新鲜蔬菜中Vc含量,计算每少的食用该...

VC++中如何实现部分清屏啊?
include<string> using namespace std;include<windows.h> void gotoxy(int x,int y){ HANDLE hConsole=GetStdHandle(STD_OUTPUT_HANDLE);COORD coordScreen={x,y};SetConsoleCursorPosition(hConsole,coordScreen);} void main(){ gotoxy(0,4);cout<<string(160,' ');gotoxy(0,4);} gotox...

只给钱的vc是游离于负分线上的vc 好vc什么样
养生堂天然维生素C的有效成分全部来自于针叶樱桃提取,但是含量很低,只有6.21%,他一片是850mg,也就是一片含天然维生素C的量是53mg左右。而纽崔莱的Vc,每片含有250mg的维生素C,其中60mg来自针叶樱桃,其余部分来自玉米跟柑橘。其中针叶樱桃部分是来自纽崔莱自由农场,有有机种植的认证。从售价上来看 ...

visual c++ 分32位系统和64位系统么?
Microsoft Visual C++,(简称Visual C++、MSVC、VC++或VC)是Microsoft公司推出的开发Win32环境程序,面向对象的可视化集成编程系统。它不但具有程序框架自动生成、灵活方便的类管理、代码编写和界面设计集成交互操作、可开发多种程序等优点,而且通过简单的设置就可使其生成的程序框架支持数据库接口、OLE2,...

白云矿区13528218198: (分不够啊..)VC怎么判断一个new对象是否已经存在? -
帛房栀子: 1、初始化为NULL:CSocket *psocket = NULL;2、判断是否存在:if(CSocket *psocket == NULL) psocket = new CSocket();//不存在则new3、delete:if(CSocket *psocket != NULL) { delete psocket; psocket = NULL; } 这样就能保证你的对象如存在则不为NULL,否则为NULL.

白云矿区13528218198: c++ 快速判断一个数是不是素数 -
帛房栀子: 设n为输入#include#include using namespace std; int n,i,k; int main(){ cin>>n; if(n==1) {cout<<"1不是一个质数\n"; return 0;} i=floor(sqrt(n)); k=2; while(k<=i&&n%k!=0) k++; if(k>i) cout<<<"是一个质数\n"; else cout<<<"不是一个质数\n"; }

白云矿区13528218198: vc作业,请问判断一个字符是字母这个表达式怎么写???O(∩ - ∩)O谢谢 -
帛房栀子: #include"stdio.h" main() { char a; printf("请输入一个字符:\n"); scanf("%c",&a); if(c>'a'&&c<'z')||(c>'A'&&c<'Z') printf("%c是字母",a); else printf("%c不是字母\n",a); }

白云矿区13528218198: VC中怎么判断一个字符是字母、数字或是特殊字符 -
帛房栀子: char c[20]="abcde中文,.?,";for(int i=0;i<20;i++) { if(c[i[>=0&&c[i]<=9)MessageBox("这个是数字"); else if ((c[i[>=a&&c[i]<=z) || (c[i[>=A&&c[i]<=Z))MessageBox("这个是字母"); elseMessageBox("这个不是字母也不是数字"); }这个不是很简单吗?还有什么问题,可以继续问.}

白云矿区13528218198: 醋酸的物质的量浓度是指什么?我感觉,从普通角度来看,就是n=Vc,但是学完水解这节后感觉可能还有继续水解这样的东西.那么这时候怎么判断啊? -
帛房栀子:[答案] 用平衡移动来判断,醋酸水解有一个平衡,到达平衡后就不再水解,而且醋酸是弱酸,水解的不多,在写物质的量时一般不考虑

白云矿区13528218198: Vc条件判断语句一、 while(n) 表示什么意思二、判断在1000之内能被7或者11整除 但是不能被77整除的数for(i=0;i -
帛房栀子:[答案] 回答问题1:n是bool型变量时,就是代表n为true时运行循环, n是int型时,就是代表n为1时运行循环 n为表达式,就代表表达式成立时运行循环 问题2:嗯嗯 正确的 举手之劳!

白云矿区13528218198: 在C++中如何判断一个数是质数
帛房栀子: 自己写一个函数 要判断一个数n是否质数,做一个循环,从2开始一直到n/2为止,分别做除数,用n来做被除数,如果每一次都不能整除,那么n为质数.

白云矿区13528218198: VC用C语言怎么实现多输入判定,如果输入与标准答案不同则输出对应的错误.(多输入) -
帛房栀子: 如果你的输入格式是确定的 就是李明(空格)25 那你可以以字符输入,然后截断,截断条件就是空格之前和空格之后 之前是一个字符串,之后是一个 之前的和李明做比较是否一样,之后的和25做比较看是否一样 都成功则提示成功,否则提示失败,而且可以根据哪个条件不满足失败的提示条件也不同

白云矿区13528218198: c++中怎么判断输入的是数字还是字母? -
帛房栀子: char c; while(1) {scanf("%c",&c);if((int)c<48 || (int)c>58){printf("\n您输入的是一个数字,请输入字母");break;}else{printf("\n您输入了字母:");} }

白云矿区13528218198: C++中如何判断一个文件输出结束 -
帛房栀子: 文件输入的话用eof判断 文件输出用输出流的close()标识. 比如用ifstream ifs("xxx");读入文件.(ifs>>x).eof()==true;//说明文件结束 比如用ofstream ofs("xxx");写了很多东西到文件,ofs.close();就会把缓冲区剩下的数据写入文件并加上EOF

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网