我是靠谱客的博主 怡然发夹,最近开发中收集的这篇文章主要介绍c 语言函数公有私有区分,C++私有成员函数,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

到目前为止,我们所看到的所有类成员函数都是公共函数,这意味着它们可以通过类外部的程序代码调用。但是,类也经常需要一些函数来进行内部处理,这样的函数不应该由类外的代码调用,它们应该被声明为私有。

下面的程序显示了具有私有函数的类的示例。SimpleStat 类被设计用于从发送给它的一组非负整数中查找和报告信息,如平均值和最大数字。但是,一旦某个数字已经被接收并被添加到累计汇总,那么它将不被保留,所以该类不能等以后再确定哪个数字是最大的,它必须通过检查其读取的每个数字来查看它是否大于之前读取的任何数字。isNewLargest 私有函数正是执行此操作的。

#include

using namespace std;

class SimpleStat

{

private:

int largest; // The largest number received so far

int sum; // The sum of the numbers received

int count; // How many numbers have been received

bool isNewLargest(int); // This is a private class function

public:

SimpleStat(); // Default constructor

bool addNumber(int);

double getAverage();

int getLargest()

{

return largest;

}

int getCount()

{

return count;

}

};

SimpleStat::SimpleStat()

{

largest = sum = count = 0;

}

bool SimpleStat::addNumber(int num)

{

bool goodNum = true;

if (num >= 0) // If num is valid

{

sum += num; // Add it to the sum

count++; // Count it

if(isNewLargest(num)) // Find out if it is

largest = num; // the new largest

}

else //num is invalid

goodNum = false;

return goodNum;

}

bool SimpleStat::isNewLargest(int num)

{

if (num > largest)

return true;

else

return false;

}

double SimpleStat::getAverage()

{

if (count > 0)

return static_cast(sum) / count;

else

return 0;

}

//Client Program

int main()

{

int num;

SimpleStat statHelper;

cin >> num;

while (num >= 0)

{

statHelper.addNumber(num);

cin >> num;

}

cout << "nYou entered "<< statHelper.getCount() << " values. n";

cout << "The largest value was " << statHelper.getLargest () << endl;

cout << "The average value was " << statHelper.getAverage () << endl;

return 0;

}

程序输出结果:

7 6 8 8 9 7 7 -1

You entered 7 values.

The largest value was 9

The average value was 7.42857

程序中,私有函数 isNewLargest 的编写目的是创建一个更模块化的类,使代码更易懂。虽然程序没有这个函数也可以正常编写完成,但是,在那种情况下,addNumber 函数本身将不得不处理比较新值与 largest 的额外工作。

最后

以上就是怡然发夹为你收集整理的c 语言函数公有私有区分,C++私有成员函数的全部内容,希望文章能够帮你解决c 语言函数公有私有区分,C++私有成员函数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部