注册 登录
编程论坛 C++教室

请教关于类中访问的一个问题?

Iamagays 发布于 2007-07-13 23:26, 609 次点击

我在C++一本教材上看到这么一句话:基类的成员有public,protected,private三种访问属性,基类自身成员可以对该类

任何一个成员访问,无论是公有成员,保护成员还是私有成员,但是通过基类的对象只能访问该类的共有成员.

小弟我对基类自身成员的概念理解的不是很好,不知道在该基类和该基类的派生类中如何表示这个自身成员? 请教各位

大侠给解释一下,最好能给一个简单的小程序例子,标注一下哪些语句是基类的自身成员对于成员的访问.谢谢啊

8 回复
#2
欢天喜地2007-07-13 23:41
基类的自身成员也就在该类中定义的变量和方法,这不包括它的子类和派生类的成员
#3
Iamagays2007-07-14 02:57
能否给举个简单的例子说明一下呢

尤其怎么引用或者说是使用积累的自身成员呢?
#4
jiaju1112007-07-14 15:19

对2楼的补充

通过基类的对象只能访问该类的共有成员,这就是说该类的用户代码只能访问该类的公有成员

简单的例子如:
class Exemple{
public:
int b;
void f(); //f()是类自身成员,可以访问 private的 a ,当然也可以访问public的 b
private:
int a;
};
int main()
{
//此处的代码即类的用户代码,只能访问类中的 b 和 f()
//不能访问 a
return 0;
}

[此贴子已经被作者于2007-7-14 15:23:07编辑过]

#5
Iamagays2007-07-15 01:36
楼上说得解释的挺清楚,但是你说//f()是类自身成员,可以访问 private的 a , 我就是想请问f()如何访问a,能在主函

数中写出来相关语句么? 谢谢啊
#6
jiaju1112007-07-15 11:59
class Exemple{
public:
//定义一个构造函数
int b;
void f()
{std::cout << a ;} //f()可直接访问 a
private:
int a;
};
int main()
{
//定义一个对象object

object.f(); //可以通过public成员f()来间接访问a
std::cout << object.b; //可以访问public成员b
std::cout << object.a; //错误,不能直接访问private成员a
return 0;
}

[此贴子已经被作者于2007-7-15 12:03:23编辑过]

#7
Iamagays2007-07-15 12:53

有点清楚了

多谢楼上仁兄

#8
melucky0102007-07-31 14:20
说得太好了
#9
long_5577992007-07-31 15:26

觉得楼主去找本编程类的书籍应该能知道更多

1