如何在C++通过公共函数访问私有函数成员?

How to access private function member through public function in C++?

本文关键字:函数 访问 成员 C++      更新时间:2023-10-16

该程序用于对矩形area()perimeter()进行简单的计算。它编译和运行良好,但答案是错误的(计算(。我想我通过使用公共方法调用私有成员函数来搞砸它们。谁能指出我的错误?

recClass.h

#ifndef RECTANGLE_H
#define RECTANGLE_H
class Rectangle{
public:
Rectangle(double length = 1.0,double width = 1.0);
void setLengthAndWidth(double,double);
double getLength();
double getWidth();
void printAreaAndPerim();
private:
double length;
double width;
double perimeter();
double area();

};
#endif  

矩形.cpp

#include<iostream>
using std::endl;
using std::cin;
using std::cout;
#include "recClass.h"
void Rectangle::setLengthAndWidth(double a,double b){
length = a;
width = b;
}
double Rectangle::getLength(){
return length;
}
double Rectangle::getWidth(){
return width;
}
double Rectangle::perimeter()
{
double perim;
perim = (length + width) * 2;
return perim;
}
double Rectangle::area()
{
double areaOfRec;
areaOfRec = length * areaOfRec;
return areaOfRec;
}
void Rectangle::printAreaAndPerim(){
cout << "Has the Perimeter: " << perimeter() << "nAnd area: " << area() << endl;
}  

//矩形主.cpp

#include<iostream>
using std::endl;
using std::cin;
using std::cout;
#include "recClass.h"
int main()
{
Rectangle rec;
rec.setLengthAndWidth(4.2,5.5);

cout << "Rectangle with length: " << rec.getLength() <<"nand width: " << rec.getWidth() << endl;
rec.printAreaAndPerim();

return 0;
}

我在代码中看到 2 个错误。

  1. 在头文件中。 构造函数名称有拼写错误。 "Ractangle(("。

  2. Rechtangle.cpp的面积函数中,变量areaOfRec是未初始化的。它用于计算。该函数应为:

    面积 = 长 * 宽