C++语言 1.在C++里面,成员可以直接调用类中的私有函数吗? 2.如果是私有派生,那么派生类从父类继承回来

C++语言 1.在C++里面,成员可以直接调用类中的私有函数吗? 2.如果是私有派生,那么派生类从父类继承回来,第1张

1、类的访问权限有三加一种,公有、私有、保护,友元。
----11 公有部分:类内,类外均可以直接访问,不带任何保护,如构造函数
----12 私有部分:仅类内成员可以直接访问,不能从外部直接访问,要访问必须通过接口。
----13 保护部分:和私有一样,但是在派生时方式不同。
----14 友元:友元可以访问其友元类的所有权限部分。

2、类的派生方式有三种,公有、私有、保护。
----11 公有派生:基类内部公有、保护部分完全复制给子类,且访问权不变。
----12 私有派生:基类内部公有、保护部分完全复制给子类,且访问权全部设置为私有。
----13 保护派生:基类内部公有、保护部分完全复制给子类,且访问权全部设置为保护。
----14 友元的友元不是友元。友元只对当前类有效。

3、派生时,基类仅有私有成员不会复制给子类,若要利用,必须通过访问接口。
4、接口:对私有数据成员专用的修改函数、输出函数或调用函数,因此接口必须是公有的。

5、类内部与外部的区别。
----11内部:类名声明、定义的左大括号到右大括号部分,即:class pen{/内部/};
----12外部:类定义结束后的,新建该类对象的成员调用,即pen a;acolor="blue";

6、特殊的包含类访问权:俗称类中类
class tool{class pen{};};
内部类可以访问外部类的所有成员,但不可逆(外部不能访问内部的私有、保护部分)。
理由:私有部分只能由该类内部成员访问,内部类是外部类的成员,而外部类虽然包含内部类,但却不是内部类的成员。

主函数中调用类中的成员函数调用方式为:对象名成员函数名(参数列表)。

其中“”是成员运算符,用来对成员进行限定,指明所访问的是哪一个对象中的成员。不仅可以在类外引用对象的公用数据成员,而且还可以调用对象的公用成员函数,但同样必须指出对象名,如:

stud1display( );//正确,调用对象stud1的公用成员函数。

display( );//错误,没有指明是哪一个对象的display函数。

由于没有指明对象名,编译时把display作为普通函数处理。应该注意所访问的成员是公用的(public )还是私有的(private )。只能访问public成员,而不能访问private成员。

扩展资料:

类的成员函数与一般函数的区别:

1、类的成员函数是属于一个类的成员,出现在类体中。类的成员函数可以被指定为private(私有的)、public (公用的)或protected(受保护的)。在使用类函数时,要注意调用它的权限(它能否被调用)以及它的作用域(函数能使用什么范围中的数据和函数)。

2、私有的成员函数只能被本类中的其它成员函数所调用,而不能被类外调用。

3、成员函数可以访问本类中任何成员(包括私有的和公用的),可以引用在本作用域中有效的数据。

4、一般的做法是将需要被外界调用的成员函数指定为public,它们是类的对外接口,并非要求把所有成员函数都指定为public。有的函数并不是准备为外界调用的,而是为本类中的成员函数所调用的,就应该将它们指定为private。

5、类的成员函数的作用是支持其它函数的 *** 作,是类中其它成员的工具函数(utility function),类外用户不能调用这些私有的工具函数。

6、类的成员函数是类体中十分重要的部分。如果一个类中不包含成员函数,就等同于C语言中的结构体了,体现不出类在面向对象程序设计中的作用。

参考资料来源:百度百科-类和对象

#include <iostream>
#include <string>
using namespace std;
class A;//前向引用声明
class B
{
private:
int x;
void IncX()
{
x++;
}
public:
B(int n):x(n)//构造函数带初始化参数列表
{

}
friend class A;//A类是B类的友元类,A类的成员函数内可以访问B类对象的私有成员x
};
class A
{
public:
void Fun()
{
B b(5);
cout << bx << endl;//A类的成员函数内可以访问B类对象的私有成员x
bIncX();//A类的成员函数内可以访问B类对象的私有成员IncX()
cout << bx << endl;
}
};
int main()
{
A a;
aFun();
return 0;
}

类的私有成员是对类外部而言的,类的成员函数内部属于类的内部,所以可以访问任何私有成员。
类自己的构造函数也是类的成员函数,所以也可以访问类自己的私有成员。
类的外部主要是两种情况:
1
类对象的作用域
2
类的派生类内部
3
类的静态成员被使用的地方


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13358241.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-21
下一篇 2023-07-21

发表评论

登录后才能评论

评论列表(0条)

保存