A *p=new C,A和C都是类,这句话是什么意思?
C类估计是A类的派生类,基类的指针可以指向派生类的实例。new C是生成一个派生类的实例,然后基类A类的指针变量p指向了C类的实例。
c++中new是什么意思
C++中new运算符用于动态分配和撤销内存的运算符。new运算符使用的一般格式为new 类型 [初值]。用new分配数组空间时不能指定初值。如果由于内存不足等原因而无法正常分配空间,则new会返回一个空指针NULL,用户可以根据该指针的值判断分配空间是否成功。一般来说,使用new申请空间时,是从系统的“堆”(hea...
c++ 简单问题
1、A *P=new B;首先new是在系统堆中分配一个永久的内存,内存的大小与B的尺寸相同。然后调用B的构造函数构造B对象的实例。最后将新构造的B实例的指针记录到A *P中。虽然P是A类型的指针,但是真实的实例还是B特征的,只是B是A的派生类,所以B也具有A的通用特征。这里用指针表示,一般是为了调用一些...
C++选择题
A):使用new操作符,可以动态分配全局堆中的内存资源 B):若P的类型已由A强制转换为void*,那么执行语句delete P*时,类A的析构函数不会被调用。C):实现全局函数时,new和delete通常成对地出现在由一对匹配的花括号限定的语句块中。D):执行语句A*P=new A[100]时,类A的构造函数只会...
C++语法高手进
21. 标准C 头文件提供了与内置类型表示有关的信息,另外,还有标准C头文件和。22. 对于二元操作符<或者>,左右操作数的计算顺序在标准C和C 中是都是未定义的,因此计算过程必须是与顺序无关的。如ia[index ]就是未定义的。23. 初始化过程为对象提供初值,而赋值是用一个新值覆盖对象的当前值,一个对象只能被...
c语言里 *p=a和p=a的区别?
在c语言里 *p=a 是使用在声明指针变量的同时给它赋初值。p=a;是在已经声明了指针变量以后,再给它赋初值。这两者是有区别的,不能通用的。
c语言中*p=a与*p=&a有什么区别
首先来说一下*和&,为了便于理解你可以认为,这里*是取内容,&是取地址。我不讨论它们的区别,因为*p=&a这个形式一般是错的,常用的是p=&a。下面比较*p=a和p=&a。看图,图很详细。显然它们是等价的。然后比较*p=&a和p=&a;则这两种都是对指针变量的赋值,赋值有两种形式 ①先定义后赋值 int...
C语言中new的用法
1)new int; \/\/开辟一个存放整数的存储空间,返回一个指向该存储空间的地址。int *a = new int 即为将一个int类型的地址赋值给整型指针a 2)int *a = new int(5) 作用同上,但是同时将整数空间赋值为5 2.开辟数组空间 对于数组进行动态分配的格式为:指针变量名=new 类型名[下标表达式];delete...
C++或者C语言中的<?=是什么
class C { static int a;} 访问a就可以使用C::a来访问,表明这个变量a具有类C的作用域。它在该类内可见。了解更多,那么namespace就是个很好的例子。另外。class C { private:int a;} void main(){ C *p=new C();\/\/访问a可以使用如下 (*p).a 或者直接 p->a 来访问,是不是更简单明...
派生类的二义性
因为不清楚是引用类A的b呢,还是引用类B的b:C *pc=new C;pc->b();考虑一下上面的代码,因为名称a既是类A又是类B的成员,因而编译器并不能区分到底调用哪一个a所指明的函数。访问一个成员,如果它能代表多个函数、对象、类型或枚举则会引起二义性。编译器通过下面的顺序执行以检测出二义性:...