33 个解决方案
#1
谁说的?
#2
是啊!谁说的啊?
#3
只要是派生类,都可以丛基类中继承!除非把基类的构造函数定义为私有的!
这样派生类无法构造。
这样派生类无法构造。
#4
不可以,在派生类中可以访问基类的保护成员,但派生类的对象就不可以
#5
我同意HEROWANG的说法
是可以访问的!!!!
是可以访问的!!!!
#6
派生类对象可以访问其从基类继承来的保护成员,但不能访问其基类对象的保护成员
#7
可以访问基类的受保护的成员。
#8
可以。派生类当然能了,但是他的对象就不可以了。对吧。
#9
给您的两句应牢记的话:
在派生类中可以访问基类的保护成员,但派生类的对象就不可以。
除非把基类的构造函数定义为私有的,这样派生类无法构造。
在派生类中可以访问基类的保护成员,但派生类的对象就不可以。
除非把基类的构造函数定义为私有的,这样派生类无法构造。
#10
那要看派生类的继承方法是public 还是private,如是派生类中可以访问基类的保护成员,否则,不能访问独立基类的保护成员
#11
派生类可以通过基类的成员函数去访问基类的private成员。
#12
你应该区分一下派生类和派生类对象的区别。
派生类是有权访问基类保护成员的,因为保护成员的设置就是为派生中方便对成员的访问而设备的吗。
而派生类的对象则是不可能的,因为在继承中,基类的保护成员在派生类中至少也是保护成员(公有继承时),但是对于由它创建的对象来说,保护成员是不能直接访问的。
派生类是有权访问基类保护成员的,因为保护成员的设置就是为派生中方便对成员的访问而设备的吗。
而派生类的对象则是不可能的,因为在继承中,基类的保护成员在派生类中至少也是保护成员(公有继承时),但是对于由它创建的对象来说,保护成员是不能直接访问的。
#13
在派生类中可以访问基类的保护成员,但派生类的对象不可以访问基类对象的保护成员。
#14
保护成员不就是让派生类来访问的吗?
#15
当然可以。
#16
当然可以,在派生类可以访问基类的保护成员。
#17
可仿问保护成员,但不可以访问私有成员。
#18
本来我认为是可以的,但是现在都糊涂了
给个权威一点的说法吧
给个权威一点的说法吧
#19
同意TrWorks(TrWorks)
#20
派生类是有权访问基类保护成员的,因为保护成员的设置就是为派生中方便对成员的访问而设备的
但派生类的对象不可以访问基类的保护成员。
但派生类的对象不可以访问基类的保护成员。
#21
protect就是专门为了它的继承类访问的,但是你的继承类对象去调用protect中的成员,那么就是相当与你在public访问这些成员,这一点要高清楚吖。。你可以在你的继承类的成员函数里访问父类的protect成员。
#22
我的理解是这样的,所谓的访问权限的含义:3种访问权限。真正的目的是约束3类人:基类的开发者,派生类的开发者,用户;基类的开发者当然可以用有3种权限。派生类的开发者自然就有2种权限。(记住这两类人都是在开发类,也就是在类域中使用这3种权限,你不防试一下,再派生类的成员函数中是可以使用基类对象来使用基类protect成员的。)用户,当然就有一种权限,他们才是定义类的人。所以我认为,所谓权限是对3类人而言的!
#23
同意校小张的看法,还要看是不是public继承
#24
public 继承的类将继承其基类的protected 成员和public 成员,并作为自己的Protected 和public成员,所以在派生类内部可以*访问,在派生类外部必须友元对象才能访问Protected成员。
#25
鄙视楼上的灌水!!!
保护成员就是让派生类继承的!你可能试图用派生类的对象直接访问其父类的保护成员,这是不可以的。保护的与私有的成员只能通过公有的成员函数来访问。
保护成员就是让派生类继承的!你可能试图用派生类的对象直接访问其父类的保护成员,这是不可以的。保护的与私有的成员只能通过公有的成员函数来访问。
#26
to yeahspyme
同意你的说法
同意你的说法
#27
讲了那么多,其实就是不可以,你可以去找找相关的资料。
#28
派生类对象是不可以直接访问基类的保护成员的,(这是对于派生类对象而言,)
如:class A { protected: int data;};
class B:pulblic A { public: int data2;};
B object;
object.data=100; ///你说这样的访问合法吗?
对于基类的的保护成员,通过public继承后,成为派生类的保护成员,只有派生类本身的成员函数才有访问该保护成员的权限。
如:class A { protected: int data;};
class B:pulblic A { public: int data2;};
B object;
object.data=100; ///你说这样的访问合法吗?
对于基类的的保护成员,通过public继承后,成为派生类的保护成员,只有派生类本身的成员函数才有访问该保护成员的权限。
#29
楼长的话好象没有说清楚啊,有两层意思的!
#30
可以
担有两分copy
本身有一份 subclass有一份
通过dynamic_cast可以读取道sublass的数据
担有两分copy
本身有一份 subclass有一份
通过dynamic_cast可以读取道sublass的数据
#31
分清楚要访问的protected成员是不是自己从基类继承过来的,
如果是,那么就有访问权限。如果是别的instantiate object的
protected成员,就没有访问权限。
>> zhaozhencn, 用你的例子
class A { protected: int data;};
class C { protected: int data;};
class B:pulblic A
{
public:
int method1();
int method2(C c);
};
int B::method1()
{
return data++; // OK,这个data是从基类继承过来的,是自己的。
}
int B::method2(C c)
{
return c.data; // Compiler error,这个data是别人的,不能动
}
如果是,那么就有访问权限。如果是别的instantiate object的
protected成员,就没有访问权限。
>> zhaozhencn, 用你的例子
class A { protected: int data;};
class C { protected: int data;};
class B:pulblic A
{
public:
int method1();
int method2(C c);
};
int B::method1()
{
return data++; // OK,这个data是从基类继承过来的,是自己的。
}
int B::method2(C c)
{
return c.data; // Compiler error,这个data是别人的,不能动
}
#32
"派生类的对象可以访问基类的保护成员吗"
搂主的这句话好像有点问题,
派生类的成员函数是可以访问基类的保护成员,而派生类的对象是不可以引用基类和它自己的保护成员,
搂主的这句话好像有点问题,
派生类的成员函数是可以访问基类的保护成员,而派生类的对象是不可以引用基类和它自己的保护成员,
#33
当然能访问了.
#1
谁说的?
#2
是啊!谁说的啊?
#3
只要是派生类,都可以丛基类中继承!除非把基类的构造函数定义为私有的!
这样派生类无法构造。
这样派生类无法构造。
#4
不可以,在派生类中可以访问基类的保护成员,但派生类的对象就不可以
#5
我同意HEROWANG的说法
是可以访问的!!!!
是可以访问的!!!!
#6
派生类对象可以访问其从基类继承来的保护成员,但不能访问其基类对象的保护成员
#7
可以访问基类的受保护的成员。
#8
可以。派生类当然能了,但是他的对象就不可以了。对吧。
#9
给您的两句应牢记的话:
在派生类中可以访问基类的保护成员,但派生类的对象就不可以。
除非把基类的构造函数定义为私有的,这样派生类无法构造。
在派生类中可以访问基类的保护成员,但派生类的对象就不可以。
除非把基类的构造函数定义为私有的,这样派生类无法构造。
#10
那要看派生类的继承方法是public 还是private,如是派生类中可以访问基类的保护成员,否则,不能访问独立基类的保护成员
#11
派生类可以通过基类的成员函数去访问基类的private成员。
#12
你应该区分一下派生类和派生类对象的区别。
派生类是有权访问基类保护成员的,因为保护成员的设置就是为派生中方便对成员的访问而设备的吗。
而派生类的对象则是不可能的,因为在继承中,基类的保护成员在派生类中至少也是保护成员(公有继承时),但是对于由它创建的对象来说,保护成员是不能直接访问的。
派生类是有权访问基类保护成员的,因为保护成员的设置就是为派生中方便对成员的访问而设备的吗。
而派生类的对象则是不可能的,因为在继承中,基类的保护成员在派生类中至少也是保护成员(公有继承时),但是对于由它创建的对象来说,保护成员是不能直接访问的。
#13
在派生类中可以访问基类的保护成员,但派生类的对象不可以访问基类对象的保护成员。
#14
保护成员不就是让派生类来访问的吗?
#15
当然可以。
#16
当然可以,在派生类可以访问基类的保护成员。
#17
可仿问保护成员,但不可以访问私有成员。
#18
本来我认为是可以的,但是现在都糊涂了
给个权威一点的说法吧
给个权威一点的说法吧
#19
同意TrWorks(TrWorks)
#20
派生类是有权访问基类保护成员的,因为保护成员的设置就是为派生中方便对成员的访问而设备的
但派生类的对象不可以访问基类的保护成员。
但派生类的对象不可以访问基类的保护成员。
#21
protect就是专门为了它的继承类访问的,但是你的继承类对象去调用protect中的成员,那么就是相当与你在public访问这些成员,这一点要高清楚吖。。你可以在你的继承类的成员函数里访问父类的protect成员。
#22
我的理解是这样的,所谓的访问权限的含义:3种访问权限。真正的目的是约束3类人:基类的开发者,派生类的开发者,用户;基类的开发者当然可以用有3种权限。派生类的开发者自然就有2种权限。(记住这两类人都是在开发类,也就是在类域中使用这3种权限,你不防试一下,再派生类的成员函数中是可以使用基类对象来使用基类protect成员的。)用户,当然就有一种权限,他们才是定义类的人。所以我认为,所谓权限是对3类人而言的!
#23
同意校小张的看法,还要看是不是public继承
#24
public 继承的类将继承其基类的protected 成员和public 成员,并作为自己的Protected 和public成员,所以在派生类内部可以*访问,在派生类外部必须友元对象才能访问Protected成员。
#25
鄙视楼上的灌水!!!
保护成员就是让派生类继承的!你可能试图用派生类的对象直接访问其父类的保护成员,这是不可以的。保护的与私有的成员只能通过公有的成员函数来访问。
保护成员就是让派生类继承的!你可能试图用派生类的对象直接访问其父类的保护成员,这是不可以的。保护的与私有的成员只能通过公有的成员函数来访问。
#26
to yeahspyme
同意你的说法
同意你的说法
#27
讲了那么多,其实就是不可以,你可以去找找相关的资料。
#28
派生类对象是不可以直接访问基类的保护成员的,(这是对于派生类对象而言,)
如:class A { protected: int data;};
class B:pulblic A { public: int data2;};
B object;
object.data=100; ///你说这样的访问合法吗?
对于基类的的保护成员,通过public继承后,成为派生类的保护成员,只有派生类本身的成员函数才有访问该保护成员的权限。
如:class A { protected: int data;};
class B:pulblic A { public: int data2;};
B object;
object.data=100; ///你说这样的访问合法吗?
对于基类的的保护成员,通过public继承后,成为派生类的保护成员,只有派生类本身的成员函数才有访问该保护成员的权限。
#29
楼长的话好象没有说清楚啊,有两层意思的!
#30
可以
担有两分copy
本身有一份 subclass有一份
通过dynamic_cast可以读取道sublass的数据
担有两分copy
本身有一份 subclass有一份
通过dynamic_cast可以读取道sublass的数据
#31
分清楚要访问的protected成员是不是自己从基类继承过来的,
如果是,那么就有访问权限。如果是别的instantiate object的
protected成员,就没有访问权限。
>> zhaozhencn, 用你的例子
class A { protected: int data;};
class C { protected: int data;};
class B:pulblic A
{
public:
int method1();
int method2(C c);
};
int B::method1()
{
return data++; // OK,这个data是从基类继承过来的,是自己的。
}
int B::method2(C c)
{
return c.data; // Compiler error,这个data是别人的,不能动
}
如果是,那么就有访问权限。如果是别的instantiate object的
protected成员,就没有访问权限。
>> zhaozhencn, 用你的例子
class A { protected: int data;};
class C { protected: int data;};
class B:pulblic A
{
public:
int method1();
int method2(C c);
};
int B::method1()
{
return data++; // OK,这个data是从基类继承过来的,是自己的。
}
int B::method2(C c)
{
return c.data; // Compiler error,这个data是别人的,不能动
}
#32
"派生类的对象可以访问基类的保护成员吗"
搂主的这句话好像有点问题,
派生类的成员函数是可以访问基类的保护成员,而派生类的对象是不可以引用基类和它自己的保护成员,
搂主的这句话好像有点问题,
派生类的成员函数是可以访问基类的保护成员,而派生类的对象是不可以引用基类和它自己的保护成员,
#33
当然能访问了.