永发信息网

base1保护类型和base2有什么本质区别么 书上这两个类是不同的结构图 没看懂 setx不就给x赋值么 要getx干嘛

答案:2  悬赏:0  手机版
解决时间 2021-04-04 08:42
  • 提问者网友:疯子也有疯子的情调
  • 2021-04-04 01:42
#include
using namespace std;
class Base1{
private:
int x;
protected:
int getx(){ return x; }
public:
void setx(int a=1){ x=a; }
};
class Base2{
private:
int y;
public:
void sety(int a){ y=a; }
int gety(){ return y; }
};
最佳答案
  • 五星知识达人网友:神的生死簿
  • 2021-04-04 01:57
Base1和Base2结构是不一样的,唯一区别就是get函数的属性不一样,Base1中是保护类型,不允许在其他与Base1无关的函数中直接调用getx()函数,而Base2中时公有类型,任何地方都可以通过对象直接调用。建议你去把类的几个类型的区别及功能在复习一下。
setx()是设置x的值,但是getx()不是设置x的值,而是为了得到x的返回值(return),因为x被设置为私有成员,在主函数中不能通过Base1对象直接使用x,如 Base1 A;A.x=2;这里就是错误的,不能直接用A.x。而getx()函数就是为了得到x而存在的一种表达方式。如 Base1 A;A.setx(2);cout<
全部回答
  • 1楼网友:走死在岁月里
  • 2021-04-04 02:44
可以私聊我~
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯