




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
STL(标准模版库,StandardTemteLibrary)它由容器算法迭代器组成。STL有以下的一些优点:STLUNIX平台下写的代码你也可以很容易地理解(STL是跨在学习VC++的过程中,遇到的LNK2001“symbol(LNK2005LNK2005错误并不是一个OOD,OOP中,组合优于继承.指针和有什么分别;如果传比传指针安全,为什么?如果我使用常量指针难道不(1)在创建的同时必须初始化即到一个有效的对象而指针在定义的时候不(3)一旦被初始化为指向一个对象它就不能被改变为另一个对象的而指针在任何时候都可以改变为指向另一个对象.给赋值并不是改变它和原始对象的绑定关(4)的创建和销毁并不会调用类的拷贝构造函,,(5)语言层面的用法和对象一样;在二进制层面一般都是通过指针来实现,,象的,显得很安全。const指针仍然存在空指针,并且有可能产生野指针设计模式考虑是扩展和重用,而这两方面很多情况下,往往会被忽略。hroperAexnder提出们周围不断重复发生的问题,以及该问题的解决方案的.这样,你就能一次又一次地使用该方案而不必做重复劳动."上述定义是对设计模式的广义定义.将其应用到面向对象软件的领域内,.可以简单的认为:设计模式就是解决某个特定的面向对象软件问题的特定方法,并且1,设计模式和框架针对的问题域不同.设计模式针对面向对象的问题域框架针对特定ClanguageCplusplus的struct和class其实具备几乎一样的功能,只是默认的属性不一样1个你认为比较能体现OOP思想的项目,用UML来描述。(最好这个项目继承,多1virtual吗?为什么。CC++的类有什么优点吗,难道仅仅是OOD,OOP从根本上改变了程序设计模式和设计思想,具备重大和深远的意义。STL7MVCobserver模式的一个特例,MFC以下三条输出语句分别输出什么?[C易]charstr1[]="abc";charstr2[]="abc";constcharstr3[]="abc";constcharstr4[]="abc";constchar*str5="abc";constchar*str6=coutboolalphastr1==str2endl;//输出什么?coutboolalphastr3==str4endl;//输出什么?coutboolalphastr5==str6endl;//C++ABB能隐式转化为A?[C++中等classBpublicA{……B公有继承自AclassBoperatorAB实现了隐式转化为AclassA{A(constB&);}//Anon-explicitB(可以有其他带默认值的参A&operatorconstA&);//赋值操作,虽不是正宗的隐式类型转换,但也可以勉强算一voidUpperCasecharstr[])//str{for(size_ti=0;i<sizeof(str)/sizeof(str[0]);++i)if('a'<=str[i]&&str[i]<='z')str[i]-=('a'-'A'}charstr[]=cout"str字符长度为sizeof(str)/sizeof(str[0endl;UpperCase(str);cout<<str<<intfunc(x){intcountx=0;{countxx=x&(x-}return}x9999x21。。同。申明一个的时候,切记要对其进行初始化完毕后,相当于目标变量名有两个名称,即该目标原名称和名,不能再把该名作为其他变量名的别名一个种数据类型,因此本身不占单元,系统也不给分配单元。不能建立数组的。。传递给函数与传递指针的效果是一样的。这时,被调函数的形参就成为原来主调使用传递函数的参数,在内存中并没有产生实参的副本,它是直接对实参操作;较大时,用比用一般变量传递参数的效率和所占空间。要给形参分配单元,且需要重复使用"*指针变量名"的形式进行运算,这很容易产生错而更容易使用,更清晰。在什么时候需要使用“常如果既要利用提高程序的效率,又要保护传递给函数的数据不在函数中被改变就应使用常。常方式:const类型标识符&名=目标变量名;1intaconstint&ra=a;ra=1;//错误a=1;//正确stringfoo(voidbar(string&bar(foo(bar("o原因在于foo()和"oworld"串都会产生一个临时对象,而在C++中,这些临时对象都是const类型的。因此上面的表达式就是试图将一个const类型的对象转换为非const类型,这是的。型参数应该在能被定义为constconst格式:类型标识符&函数名(形参列表及类型说明){//函数体}(量的是不可取的。因为随着该局部变量生存期的结束,相应的也会失效,产生runtimeerror!不能返回局部变量的。这条可以参照EffectiveC++[1]的Item31。主要原因是局部变量会在函数返回后被销毁,因此被返回的就成为了"无所指"的,程序会进入未知不能返回函数内部new分配的内存的。这条可以参照EffectiveC++[1]的Item31。虽然不存在局部变量的销毁问题,可对于这种情况(返回函数内部new分配内存的引用,又其它尴尬局面。例如,被函数返回的只是作为一个临时变量出现,而没有被赋予一个实际的变量那么这个所指向的空(由new分配就无法释放造成memoryleak。可以返回类成员的,但最好是const。这条原则可以参照EffectiveC++[1]的Item果其它对象可以获得该属性的非常量(或指针,那么对该属性的单纯赋值就会破坏业流操作符<<和>>,这两个操作符常常希望被连续使用,例如:cout<<"o"<<endl; 这两个操作符的返回值应该是一个仍然支持这两个操作符的流。可选的其它方案包括:用的,例如:x=j=10;或者(x=10)=100;赋值操作符的返回值必须是一个左值,以便可以被3#include<iostream.h>int&put(intn);intvals[10];interror=-1;voidmain(){}int&put(int{if(n>=0&&n<=9)returnelse{cout<<"subscripterror";returnerror;}在另外的一些操作符中却千万不能返回:+-*/四则运算符它们不能返回,EffectiveC++[1]的Item23sideeffect,变量的,返回一个new分配的对象的、返回一个静态对象。根据前面提到的引用作为返回值的三个规则,第2、3两个方案都被否决了。静态对象的又因为((a+b)==(c+d))会为true而导致错误。所以可选的只剩下返回一个对象了。是除指针外另一个可以产生多态效果的这意味着,一个基类的可以指向它的ClassA;ClassB:ClassA{...};Bb;A&ref=外,就是上面提到的对函数传refpointer的区别。它情况都推荐使用。以上2-8参考:结构和联合都是由多个不同的数据类型成员组成,但在任何同一时刻,联合中只存放了一个被选中的成员(所有成员共用一块地址空间)而结构的所有成员都存在(不同成员的对于联合的不同成员赋值,将会对其它成员重写,原来成员的值就不存在了,而对于结构#include{intcharvoid{a.x[0]=a.x[1]=}答案:266(低位低地址,高地址,内存占用情况是Ox010A){inti;charfirst;charprintf("%c%c\n",number.half.first,mumber.half.second);printf("%x\n",number.i);}答案:AB(0x41对应'A',是低位;Ox42对应'B',是strcpy的函数原型:char*strcpy(char*strDestconstchar*strSrc)strDest是目的字符串,strSrcC++/C的字符串库函数,请编写函数strcpy。char*strcpy(char*strDest,constchar{if(strDest==NULL||strSrc==NULL)returnNULL;if(strDest==strSrc)returnstrDest;char*tempptr=strDestwhile((*strDest++=*strSrc++)!=;returntempptr}class{String(constchar*strNULL);//String(constString&another);//~String();//String&operaterconstString&rhs);//char*m_data;//String::String(constchar{ifstrNULLstrlen在参数为NULL{m_data=newchar[1];m_data[0]='\0';}{m_data=newchar[strlen(str)+}}String::String(constString{m_data=newchar[strlen(another.m_data)+1];}String&String::operator=(constString{if(this==&rhs)return*this;[];//m_data=newchar[strlen(rhs.m_data)+1];return*this}{delete[]m_data}.hifndef/define/endif的作用?#include<file.h>#includefile.h"的区别?前者是从StandardLibrary的路径寻找和file.h,而后者是从当前工作路径搜寻并C++C编译器编译后的函数,为什么要加extern通常在模块的头文件中对本模块提供给其它模块的函数和全局变量以关键字extern声明。例如,如果模块B欲该模块A中定义的全局变量和函数时只需包含模块A的头文A编译生成的目标代码中找到此函数extern"C"是连接申明(linkagedeclaration),被extern"C"C语言方式编译和连接的,C++C的函数是怎样编译的:C语言的不同。例如,假设某个函数的原型为:voidfoo(intx,intyC编译器编译后在符号库中的名字为_fooC++编译器则会产生像nameC++中,函数voidfoo(intxinty与voidfoo(intx,floaty编译生未加extern"C"时的连接方C++中,模块A//A头文件moduleA.h#ifndefMODULE_A_H#defineMODULE_A_Hintfoo(intx,inty);在模块B中该函数//B实现文件moduleB.cpp#include"moduleA.h"加extern"C"后的编译和连接方加extern"C"后,模块A的头文件变为//A头文件moduleA.h#ifndefMODULE_A_H#defineMODULE_A_Hextern"C"intfoo(intx,inty);B的实现文件中仍然调用foo(2,3A编译生成fooC语言的方如果在模块A中函数了foo为extern"C"类型,而模块B中包含的是externintfoo(intx,inty)B找不到模块A中的函数;反之亦然。解许多问题C++C及其它语言的混合编程。C++externC"externC"通常的使用技巧:extern"C"的惯用法在C++中C语言中的函数和变量,在包含C语言头文件(假设为cExample.h)extern{#include}C语言的头文件中,对其外部函数只能指定为extern类型,C语言中不支持extern,在.c文件中包含了externC"C++C函数例子工程中包含的三个文件的源代码如下#ifndefC_EXAMPLE_H#defineC_EXAMPLE_Hexternintadd(intx,inty);#include"cExample.h"intadd(intx,inty){returnx+}c++add:cppFile.cppextern"C"{#include}intmain(intargc,char*{return0;}如果C++调用一个C语言编写的.DLL时,当包括.DLL的头文件或接口函数时,应externC 在C中C++语言中的函数和变量时,C++的头文件需添加extern"C",但是在C语言中不能直接了extern"C"的该头文件,应该仅将C文件中将C++中定义的extern"C"函数为extern类型。CC++函数例子工程中包含的三个文件的源代码如下//C++cppExample.h#ifndefCPP_EXAMPLE_H#defineCPP_EXAMPLE_Hextern"C"intadd(intx,inty);//C++#include"cppExample.h"intadd(intx,inty){returnx+}externintadd(intx,intyintmain(intargc,char*argv[]{add(2,3return}15题目的解答请参考《C++中extern“C”含义探索》注解classA{...}classB{A* 而组合表示contains-a的关系,关联性强于聚合:组合类与被组合类有相同的生命周期,组classA{...}classB{A 参考文章:封装:将客观事物抽象成类,每个类对自身的数据和方法实行protection(private,)不同的函数(至少对于编译器来说是这样的。如,有两个同名函数:functionfunc(p:integer):integer;和functionfunc(p:string):integer;(六char*constp;charconst*pconstchar*pchar*constp;常量指针,pcharconst*p;//指向常量的指针,指向的常量值不可以改constchar*p;//charconst*pcharstr1[]="abc";charstr2[]="abc";constcharstr3[]="abc";constcharstr4[]=constchar*str5="abc";constchar*str6=char*str7="abc";char*str8=cout<<(str1==str2)<<endl;cout<<(str3==str4)<<endl;cout<<(str5==str6)<<cout<<(str7==str8)<<结果是:001解答:str1,str2,str3,str4str5,str6,str7,str8voidUpperCasecharstr[])//str{for(size_ti=0;i<sizeof(str)/sizeof(str[0]);++i)if('a'<=str[i]&&str[i]<='z')str[i]-=('a'-'A'}charstr[]=cout"str字符长度为sizeof(str)/sizeof(str[0endl;UpperCase(str);cout<<str<<sizeof有问题。根据语法,sizeof如用于数组,只能测出静态数组的大小,无函数内的str实际只是一个指向字符串的指针,没有任何额外的与数组相关的信息,因此sizeof44。指针是多少位只要看地址总线的位数就行了。8038632的数据总线。所以4个字节了。{int2009-4-1416:31l6712int*ptr=(int*)(&a+1);}*(a+1)就是a[1],*(ptr-1)a[4],&a+1不是首地址+1,系统会认为加一个a数组的偏移,是偏移了一个数组的大小(本5int)int*ptr=(intptr实际是&(a[5]),也就是&ainta5intptr实际是prt-1a,&a的地址是一样的,但意思不一样,aa[0]的地址,&a是对int{charchar*str=&a; return}没有为str分配内存空间,将会发生异常。问题出在将一个字符串进一个字符变量char*s="AAA";"AAA"是字符串常量。s是指针,指向这个字符串常量,所以s的时候就有问题cosntchar*((int*s[10])(int)int*s[10])(int)intfunc(intparam)inta=248;b=4;intconstc=21;constint*d=&a;int*constintconst*fconst*c*dconst,e&a说了是constconst*fconst=&a;有两种解法,一种用算术算法,一种用^(异或a=a+b=a-a=a-aa^b;//b=a^b;a=a^b;a^=b^=cc++structcc++structcstruct不可以含有成员函数,而c++struct可private。#include<stdio.h>#include<stdlib.h>voidgetmemory(char{p=(char*)malloc(100); o}intmain({char*str=NULL;return}程序,getmemory中的malloc不能返回动态内存 ()对str操作很char 共享系统4互斥、请求保持、不可、环virtualvoid tcp/udp属于与TCP不同,UDP并不提供对IP协议的可靠机制、流控制以及错误恢复功能等。由于UDP比较简单,UDP头包含很少的字节,比TCP负载消耗少。tcp:udp:(void*)ptr(*(void**))ptrptr为同一个指针(void*)ptr(*(void**))ptrint{intx=3;return1;}mian中,c000x100000赋值,我们可以用(unsignedint*)0x1000001234;那么要是想让0x100000去执行,应该怎么做?*((void(*)())0x100000)(0x100000强制转换成函数指针,即:(void(*)())0x100000*((voidtypedefvoid(*)()#define#defineNTBL线程与进程的区别和联系?线程是否具有相同的堆栈dll是否有独立的堆栈DLL中的代码是被某些线DLLDLLDLL自己创建的线程所执行,那么是不是说DLL有独立的堆栈?DLLDLLEXE中,或者另外一个DLL中删除,很有可能导致程序。unsignedshortA=10;printf("~A=%u\n",~A);charc=128;第二题,c=0x10,输出的是int,最为1,是负数,所以它的值就是0x00的补码就128,所以输出-128。这两道题都是在二进制向int或uint转换时的最处理voidGetMemory(char**p,int{*p=(char}int{char {}printf("\nstriss",str);}strisworld只是释放的str指向的内存空间,它本身的值还是存在的.所以 的习惯就是将str=NULL.str指向空间的内存已被回收,如果输出语句之前还存在分配空间的操作的话,这段尽管这段程序确实是存在大大的问题(上面各位已经说得很清楚了,但是通常会打印出worldmalloc一块内存的时候,管理库向操作系统申请一块空间(可能会比你申请的大#include"stdio.h"#include"string.h"void{charaa[10];}char(*str)[20];char*str[20];longa=0x801010;“10000000 再加上5就 struct{chart:4;charunsignedshorti:8;unsignedlongm;sizeof(Astruct{chart:4;4chark:4;4unsignedshorti:8;8unsignedlongm;//24};//8intadd_n(intn{staticinti=100;i+=n;return}static#include<string.h>#include<malloc.h>#include<stdio.h>#include<stdlib.h>typedefstructAA{intb1:5;intvoid{AAchar cout<<aa.b1<<endl;cout<<aa.b2}-16首先sizeof(AA)的大小为4,b1和b2分别占5bit和2bit.经过strcpy和memcpy后,aa的4个字节所存放的值是:0,1,2,3的ASC码,即, 所以:答案是-16intfunc(x){intcountx=0;while(x){countx++;x=x&(x-}return}?999919999=9×1024+512+9×10241512125611514188。1000101111的个数是很效率很高的。inta,b,cC=a+b,不可以改变数据类型,clongint,关键是如何处booladd(inta,intb,int{return(a>0&&b>0&&(*c<a||*c<b)||(a<0&&b<0&&(*c>a||}struct{inta:3;intb:2;intc:3;int{bitchar*c=(char*)&s;cout<<s.a<<endl<<s.b<<endl<<s.c<<endl;inta=-1;return0;}41--0x9910011001a001,b11c100。当c为有符合数时c100,1cc4;b1;当c为有符合数时,c=100,即c=4,同理b=3。有些信息在时,并不需要占用一个完整的字节,而只需占几个或一个二进制位。例如在存放一个开关量时只有0和1两种状态,用一位二进位即可。为了节省空间,把一个字节中的二进位划分为几个不同的区域并说明每个区域的位数每个域有一个,struct位域结构名{位域列表};其中位域列表的形式为:类型说明符位:位域度struct{inta:8;intb:2;intstruct{inta:8;intb:2;intdatabsa8b2cstruct{unsigneda:4unsigned:0unsignedb:4unsigned}4位,c48位二进位。struct{inta:1int:2intb:3int{struct{unsigneda:1;unsignedb:3;unsigned}#include<stdio.h>intmain(void){int**p;intarr[100];p=&arr;return0;}解答:搞错了,是指针类型不同,int**p;//二级指针&arr;//100的#include<stdio.h>intmain(void){int**p,*q;intarr[100];q=arr;p=&q;return}#defineMAXint{unsignedcharA[MAX],i;//i被定义为unsignedcharfor(i=0;i<=MAX;i++)return}解答:死循环加数组越界(C/C++不进行数组越界检查)MAX=255数组A的下标其二i循环到255时循环内执行:A[255]=255;这句本身没有问题但是返回for(i=0;i<=MAX;i++)语句时,unsignedchar的取值范围在(0..255),i++i0了..无限struct{charstr;shortx;int}struct{charstr;intshort}在第二个结构中,为保证num按节对齐,char后必须留出3字节的空间;同时为保证整个结构的自然对齐(这里是4字节对齐x后还要补齐2个字节,这样就是12 A.cB.ccstatic变量,编译的时候会不会有问题?static变量会保存到哪里(栈还是堆或者其他的)?static的全局变量,表明这个变量仅在本模块中有意义,不会影响其他模块。他们都放在数extern关键字。struct{inti:intj:inta:3;doublestruct{inti:intj:4;doubleb;inta:3;printf("sizeof(s1)=%d\n",sizeof(s1));printf("sizeof(s2)=%d\n",sizeof(s2));result:16,24struct{inti:intj:inta:3;doubleb;i08位一个字节,然后,j就在相对一个a31522double8081888162009-4-1416:31221.221.165.*19(五struct{intdata;Node*next;typedefstructNodeNode已知链表的头结点head,写一个函数把这个链表逆序(In Node*ReverseList(Node*head)//链表逆序{if(head==NULL||head->next==NULL)returnhead;Node*p1=head;Node*p2=p1->next;Node*p3=p2->next;p1->next=NULL;while(p3!=NULL){p2->next=p1;p1=p2;p2=p3p3=p3->next}p2->next=p1;head=p2;returnhead;}head1head2各自有序,请把它们合并成一个链表依然有序。(保留所有Node*Merge(Node*head1,Node{if(head1==NULL)returnhead2;if(head2==NULL)returnhead1;Node*head=NULL;Node*p1=NULL;Node*p2=NULL;if(head1->data<head2->data{head=head1p1=head1->next;p2=head2;}{head=head2p2=head2->next;p1=head1;}Node*pcurrent=headwhile(p1!=NULL&&p2!={if(p1->data<=p2->data{pcurrent->next=p1;pcurrent=p1;p1=p1->next}{pcurrent->next=p2;pcurrent=p2;p2=p2->next}}if(p1!=NULLpcurrent->next=p1;if(p2!=NULL)pcurrent->next=p2;returnhead;}head1head2各自有序,请把它们合并成一个链表依然有序,这次要求用递归方法进行。(Autodesk)Node*MergeRecursive(Node*head1,Node{if(head1==NULL)returnhead2;if(head2==2009-4-1416:31221.221.165.*20returnhead1Node*head=NULLif(head1->data<head2->data{head=head1}{head=head2}returnhead}(Autodesk)classB{{cout<<"default}{}B(inti):data(i)//B(int)worksasaconverter(int->instanceof{cout<<"constructedbyparameter"<<data}int y(B{returnb}intmain(intargc,char*argv[])constructedbyparameterdestructedB(5)Bt1=y(5);Bt2= destructedt1形参析return destructed }destructedintmain(intargc,char*argv[])constructedbyparameterdestructedB(5)Bt1= y(5);Bt2= constructedbyparameter10return destructed destructed写一个函数找出一个整数数组中,第二大的数( constintMINNUMBER=-32767intfind_sec_max(intdata[],int{intmaxnumber=data[0]intsec_max=MINNUMBER;for(inti=1;i<count;i++){if(data>maxnumber{sec_max=maxnumber;maxnumber=data;}{if(data>sec_max)sec_max=data;}}returnsec_max}比classA:publicclassB,publicclassCcompiler-dependent的,可以参考《深入探 对象模型》,或者structnode{charval;node*boolcheck(constnode*head)returnfalse:无环;true:O(n)的办法就是(搞两个指针,一个每次递增一步,一个每次递增两步,如果有环:boolcheck(constnode*{if(head==NULL)returnnode*low=head,*fast=head-{if(low==fast)returntrue;}return}C++Cstructstruct成员默认权限为public,而class成员默认权限为虚函数是指被关键字virtual说明的函数,作用是使用C++语言的多态特性使用方式不同:通过后全局变量程序的各个部分都可以用到,局部变量只能在局部NO(n),空间复杂度为O(1)voidsort(inte[],int{inti;intfor(i=1;i<n+1;{t=e[e[i]]=e[i];e[i]=t;}}overflow。因此,能从栈获得的空间较小。new分配的内存,一般速度比较慢,而且容易产生内存碎片,不过用起来最方便。行语句)C编译器中,参数是由右往左入栈Windows程序的是哪里?写出Windows消息机制的流Windows程序的是WinMain()函数。Windows应用程序消息处理机制:应用程序在消息循环中调用GetMessageWNDCLASSlpfnWndProc成员保存的窗口过程函数的指针调用窗口使用回调函数实际上就是在调用某个函数(API函数)时,将自己的一个函数(这个;设置触发条件,就是在你的函数中的回调函数名作为一个参数,以便系统调用一、回调函数类型typedefvoid*FunPtr)(void);class{staticvoidcallBackFun(void)//回调函数,必须为{}virtualvoidFuntype(FunPtr}void{}回调函数与APIAPIAPI是低层提供给的调用,一般这个函数对都是已知的;而回调正好相反,他是提供给底层的调用,对于低层他是未知的,必须由进行安装,这个安装函数其实就是一个低层提供的API,局部变量可以与全局变量同名,在函数内这个变量时,会用到同名的局部变量,而不会3、全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?可以,在不同的C文件中以static形式来同名全局变量。可以在不同的C文件中同名的全局变量,前提是其中只能有一个C文件中对此变量赋4for(;1;)有什么问题?它是什么意思?while(1)相同。5、do……while和while……do{inta,b,c,d;return}#include"string.h"{ char*dest=NULL;intlen=strlen(src);char*d=dest;char*s=src[len];return0;}1:int{char*src=" intlen=strlen(src);char*destchar*)malloc(len+1);//要为\0char*d=char*s&src[len-1];//指向最后一个字符while(len--!=0)*d0;//尾部要加\0(dest);//return}2:#include#include<string.h>{charstr[]=" intlen=strlen(str);charfor(inti=0;i<len/2;{}return0;}8、-1,2,7,28,,12628126n^3-1(n0,2,4)n^3+1(n1,3,5)2个栈为A,B,一开始均为空.入队push入栈出队B如果不为空,则将栈ApoppushBpopO(1),比上函数名:atol:把字符串转换成长整型数用法:longatol(constchar*nptr);#include<stdlib.h>#include<stdio.h>intmain(void){longchar*str= l=printf("string=%sinteger=%ld\n",str,l);}11、对于一个频繁使用的短小函数,C语言中应用什么实现,C++中应用什么实现?c用宏定义,c++inlinePPP点到点连接14、voip都用了那些协议17、enum{x=18、unsignedchar*p1;unsignedlong*p2;p1=(unsignedchar*)0x801000;p2=(unsignedlong*)0x810000;p1+5=0x801005;p2+5=AdoA除了“能够让应用程序处理于DBMS中的数据“这一基本相似点外,两者没有太多共Ado使用OLEDBCOMADO.NET拥有自己的ADO.NET接口并且基于微软的.NET体系架构。众所周知.NETCOM体系,ADO.NETADO和OLEDBADO.NET和ADO是两种数据方式。ADO.net提供对XML的支持。Newdelete与 初始化对象,new会自动调用对象的构造函数。deletedestructor,而不destructor.#defineDOUBLE(xx+x,i5*DOUBLE(5)i是多少?答案:i30。2009-4-1416:32221.221.165.*25intializationlist答案:当类中含有const、referencemainmain从静态区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。mallocnew申请任意多少的deletestructclassstruct的成员默认是公有的,而类的成员默认是私有的。structclass在其他方面是功能且有公有数据(这种事情在良好设计的系统中是存在的!)struct关键字,否则,你应该使用class关键字。A中没有生命任何成员变量与成员函数,这时sizeof(A)的值是多少,如果不是肯定不是零。举个反例,如果是零的话,一个classA[10]对象数组,而每一个对象占用A[0],A[1]…了。在8086汇编下,逻辑地址和物理地址是怎样转换的?(In得到了真正要的地址。请参考:,重点是BOOL,int,float,指针类型的变量a与“零”的比较语句。BOOL:if(!a)orif(a)int
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学校社团工作计划人员招募
- 文化中心保护计划
- 可持续发展对品牌的影响计划
- 八年级地理上册 第4章 第3节《工业》教学实录 新人教版
- 2025年微波器件及电路合作协议书
- 生活部团队文化的建设与维护计划
- 急诊科室药品管理规范计划
- 六年级上册数学教案-分数混合运算第1课时 分数混合运算 说课稿-西师大版
- 孩子归属协议(2025年版)
- 八下历史第16课
- 猩红热疾病介绍与防治课件
- 2024年中考语文二模试题分类汇编:病句修改(北京专用)(解析版)
- 中医师承跟师月记范文
- 铜制浮子式自动排气阀规范指引
- 个人车辆租赁给公司合同模板
- CRRT治疗原理、模式选择
- 《安徽省幼儿园保育教育质量自评指导手册》(文本)
- 成都市2024届高中毕业班第二次诊断性监测-2024年全国各地高考语文模拟卷作文导写讲练
- 医保统计信息管理制度
- 2024年保育员(初级)证考试题库及答案
- 40篇英语短文搞定3500个单词 正文
评论
0/150
提交评论