【发布时间】:2013-07-24 09:18:10
【问题描述】:
我试图了解如何通过公共课程访问私人课程,因为一些专家对我说我必须只使用私人课程。但我不明白为什么这不起作用。我真的不知道如何通过 public 访问私有它真的很混乱。
#include <iostream>
#include <string>
using namespace std;
class ManolisClass{
public :
void setName(string x){
name = x;
}
string getName(){
return name;
}
private :
string name;
};
int main()
{
ManolisClass bo;
getline(cin, bo.setName() );
cout << bo.getName();
return 0;
}
【问题讨论】:
-
通过公有类访问私有类?你说的是继承吗?我很困惑
-
到底是什么问题?它编译吗?它会产生意想不到的结果吗?请扩展您的问题。
-
对不起,我真的很抱歉......但我现在正在学习这个!他们对我说,我必须只使用私人课程,而不是公开课程。
-
当人们说要使用私有数据成员时,他们并不是要使用 setter 和 getter 来公开所有这些成员。这会破坏你的类所做的任何抽象的意义。
-
您的
getline呼叫错误!您将setName成员函数调用的result 传递给它,但它不返回任何内容。setName函数还需要一个输入参数,您没有提供该参数。您需要将输入存储在一个临时变量中,并使用此变量调用setName。