c++:从类的公共部分调用类中的私有函数
C++: Calling private function in a class from the public section of that class
如果我要创建一个类,并将几个函数放入私有部分,如何从同一个类的公共部分调用这些函数?例子:
class calculator{
public: //What would go here
private:
float calculate(float x, char y, float z){
float answer;
switch (y){
case '+':
answer = x + z;
break;
case '-':
answer = x - z;
break;
case '/':
answer = x / z;
break;
case '*':
answer = x * z;
break;
default:
return(0);
}
cout <<"= "; return answer;
}
void main(){
float num1;
float num2;
char aOp;
system("CLS");
cout << ">> "; cin >> num1 >> aOp >> num2;
cout << calculate(num1, aOp, num2) << endl << endl;
}
};
您只需从公共成员函数调用私有成员函数:
class Foo
{
public:
void foo() { privateFoo(); }
private:
void privateFoo();
};
就像现在一样。你们在同一个类中,所以你们可以访问私有方法。把main设为public。还要注意,main不是成员函数的好名字。Main通常是为程序的入口点保留的,不能在类中。
如果你想调用私有声明的函数,如果你想从任何地方调用它,你必须调用公共部分的函数(或继承类的保护),从那里你必须调用这个私有函数。
好的。记住一件事。私有函数只能在作为同一类成员的另一个函数的帮助下调用。即使是对象也不能使用点操作符调用私有函数。请看下面的例子:
#include<iostream>
using namespace std;
class student
{
private:
int m;
void read void //Private function of the class.
public:
void update(void);
void write(void);
};
如果s1是class student的对象,那么我们将不能写出这个
s1.read(); //it won't work: object can not access private members.
,但是我们知道可以在同一类的另一个函数的帮助下调用read()函数,因此可以在update()函数或write()函数的帮助下调用它。所以这里我们在update()函数的帮助下调用read()函数来更新m的值。
void student :: update(void)
{
read(); ///simple call ; no object used
}
那么,这就是如何调用私有成员函数。最后是使用update()和read()函数更新m值的完整程序。——
#include<iostream>
using namespace std;
class student
{
int m;
void read()
{
m=5;
cout<<m;
}
public:
void update();
void write();
};
void student :: update()
{
read();
}
int main()
{
student s1;
s1.update();
return 0;
}
相关文章:
- 函数调用中参数的顺序重要吗
- 基于另一个成员参数将函数调用从类传递给它的一个成员
- 变量没有改变?通过向量的函数调用
- 在两个类中共享相同的函数调用,并在不需要时避免空实例化
- 是否有C++编译器选项允许激进地删除所有函数调用,并将参数传递给具有空体的函数
- 我知道函数调用中存在歧义.有没有办法调用foo()函数
- 模板函数调用
- 获取从C++中同一类中的构造函数调用的方法返回的值
- 析构函数调用
- 成员函数调用和C++对象模型
- 使用共享指针的函数调用,其对象应为 const
- C++:编译时检查匹配的函数调用对?
- 函数调用C++中的参数太少
- 来自 DLL 的函数调用 [表观调用的括号前面的表达式必须具有(指向-)函数类型]
- 返回指向对象的指针的函数调用是否为 prvalue?
- C++ 如何重载 [] 运算符并进行函数调用
- 代码的效率. 转到和函数调用
- 是同一作用域的函数部分中的函数调用
- 如何封装一个函数,以便它只能由同一类中的一个其他函数调用?
- 类型擦除的std::function与虚拟函数调用的开销