首页 > 试题广场 >

有以下类定义 #include usin...

[不定项选择题]
有以下类定义
#include <iostream>
using namespace std;
class shape 
{public:  
        virtual int area()=0;
};  
class rectangle:public shape 
{public: 
        int a, b;  
        void setLength (int x, int y) {a=x;b=y;} 
        int area() {return a*b;} 
};
若有语句定义rectangle r; r.setLength(3,5); 则编译时无语法错误的语句是(      )
  • shape *s1=&r;
  • shape &s2=r;
  • shape s3=r;
  • shape s4[3];
shape为抽象类,不可实例化
发表于 2020-08-06 09:54:06 回复(4)
考验虚函数的运用,虚函数的使用时在指针或者引用情况下才会生效。
发表于 2020-09-29 00:28:32 回复(0)
眼瞎了,看成了有语法错误的语句
发表于 2022-12-15 21:30:07 回复(1)
请问大佬,c不是实例化吗?
发表于 2020-10-10 00:52:00 回复(0)
有没有选CD的
发表于 2020-09-22 13:01:45 回复(0)

A.shape *s1 = &r;- 这是允许的,因为你可以将一个子类对象的指针赋给一个基类指针。

B.shape &s2 = r;- 这是允许的,因为你可以将一个子类对象绑定到一个基类引用。

C.shape s3 = r;- 这是不允许的,因为你不能直接创建一个抽象基类的对象。

D.shape s4[3];- 这是不允许的,因为你不能创建一个抽象基类的数组。

发表于 2023-10-21 11:07:27 回复(0)
虚函数的运用不太理解
发表于 2021-06-23 23:46:19 回复(0)
shape为是抽象类,无法像D一样实例化
发表于 2021-05-08 12:11:22 回复(0)
有纯虚函数不能实例化
发表于 2023-08-07 16:36:45 回复(0)
考验虚函数的运用,虚函数的使用时在指针或者引用情况下才会生效。


注意题目:无语法错误,选择正确选项


发表于 2022-08-17 00:06:17 回复(0)
抽象类无法实例化对象,我理解为无法申请到该类型大小的内存空间可行吗
发表于 2022-02-20 14:32:36 回复(0)
shape为抽象类,不可实例化
发表于 2021-11-15 16:32:45 回复(0)
虚基类声明指针是OK的 ,但是用来实例化对象就不行!!!
发表于 2021-04-16 16:44:05 回复(0)
shape有纯虚函数为抽象类,无法实例化
发表于 2021-04-15 22:56:58 回复(0)
C:应用默认拷贝构造函数(浅拷贝)将r(默认转换为基类)拷贝给s3;
发表于 2021-03-23 16:34:22 回复(0)
shape中有纯虚函数 有纯虚函数就是抽象类 抽象类不可以实例化!!
发表于 2020-11-19 21:20:39 回复(1)
求问大佬,c怎么解释,c不是实例化了吗
发表于 2020-10-11 10:18:11 回复(1)
基类中Area为纯虚函数,基类无法实例化,D错。
发表于 2020-09-16 16:31:07 回复(0)