我想输出私有类成员Bankcode
和AgentName
的值。如何在我的main()
函数中执行此操作,或者通常在BOURNE
类之外执行此操作。
我的初始代码尝试如下:
#include <iostream>
#include <string>
using namespace std;
class BOURNE
{
string Bankcode ={"THE SECRET CODE IS 00071712014"} ; /*private by default*/
string AgentName={"Jason Bourne"}; /*private by default*/
public:
void tryToGetSecretCodeandName(string theName ,string theCode); //trying to get the private
void trytoGetAgentName( string name); // try to get name
};
//***********************defining member function**************************************
void BOURNE::tryToGetSecretCodeandName(string theName, string theCode) //member defining function
{
Bankcode=theCode; //equalling name to the code here
AgentName=theName; //the samething here
cout<<theCode<<"\n"<<theName; //printing out the values
}
//************************main function*****************************
int main()
{
BOURNE justAnyObject; //making an object to the class
justAnyObject.tryToGetSecretCodeandName();
return 0;
}
答案 0 :(得分:1)
第三次回答
你的代码中有两个“getter”&#39;样式函数,但没有人不参数。也就是说,你的两个函数都需要传递参数。
你的主要功能是调用get...CodeandName()
,它没有参数。因此,您会收到编译器错误,可能会抱怨有效签名或传递的参数。
已编辑的答案 如果您只想获取值,那么典型的(据我所知)实现就像
std::string BOURNE::getCode()
{
return Bankcode;
}
std::string BOURNE::getName()
{
return AgentName;
}
int main()
{
BOURNE myAgent;
cout<< "The agent's name is : " << myAgent.getName() << endl;
cout<< "The agent's code is : " << myAgent.getCode() << endl;
}
原帖,留下来因为我觉得它更有用
我怀疑你提出的问题是你能否做到像
这样的事情void BOURNE::tryToGetSecretCodeandName(string theName, string theCode)
{
if (Bankcode == theCode) {
cout<< "You correctly guessed the code : " << Bankcode << endl;
}
if (AgentName == theName) {
cout << "You correctly guessed the agent's name : " << AgentName << endl;
}
}
这将允许您反复猜测名称,并在您纠正时获得输出。
如果你想禁用这种猜测,那么你可以考虑创建一个新类(可能是基于std::string
派生的 - 但是看看this question是出于小心的原因!)并实现operator==
函数始终返回false
。