类和对象(3)

1.假设有以下类A,下面程序片段,哪个是不正确的?

class A{
 public:
    int func(int a){return a*a;}
};

A.A a;a.func(5);

B.A a;A &r=a;r.func(5);

C.A a,b;if(a!=b) a.func(5);

D.A *p=new A;p->func(5);

C。不等号针对基本数据类型,需要对不等号进行运算符重载。

2.假设A是一个类的名字,下面程序片段,类A会调用析构函数几次?
int main(){
* p = new A[2];
* p2 = new A;
A a;
delete [] p;
}

A.2

B.1

C.4

D.3

D。指针p在析构时把宿主的所有元素都析构了,如果是调用构造函数就会析构两次。

3.

下面对于析构函数的描述中,正确的是( )

A.析构函数,既然是函数,同样可以带有参数

B.只有用delete关键字删除对象时,系统才会自动调用析构函数。

C.析构函数是系统的内置函。

D.析构函数名称为在类名或者构造函数名之前加一个“~”

D。

析构函数不是系统的内置函数,它是由程序员根据需要自行定义的成员函数,用于在对象生命周期结束时执行特定的清理工作。虽然所有的对象在被销毁时都需要执行析构函数,但具体如何实现和执行析构函数是由程序员控制的,因此它不是系统的内置函数。

4.指向类的数据成员指针所指向的数据成员,可以具有公有属性,也可以具有私有属性。

F。只能是公有属性才能指向数据成员的指针。

5.以下程序段,哪个是不正确的?

A.int main() { class A { public:int v; A *p; }; A a; a.p=new A; delete a.p; return 0; }

B.int main() { class A { public:int v; }; A *p=new A; p->v=4; delete p; return 0; }

C.int main() { class A { public:int v;A *p; }; A a; a.p=&a; return 0; }

D.int main() { class A { int v; }; A a; a.v = 3; return 0; }

D。v是私有的,a.v是错误的。

6.有如下的类定义:

class Sample
{
public:
    Sample( );
    Sample(int x );
    ......    
};

动态申请对象存储单元,调用无参构造函数的语句是()。 

A.Sample *a=new Sample(2);

B.Sample a=new Sample;

C.Sample *a=new Sample;

D.Sample a=new Sample( );

​​​​​​​C

​​​​​​​

  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有理想的上学人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值