我有课 Pstring
class Pstring
{
private:
string palindrome;
public:
Pstring() { palindrome = ""; }
Pstring(string pal) { setString(pal); }
void setString(string pal) { palindrome = pal; }
string getPal() const { return palindrome; }
};
我的主要方法中的一个对象,Pstring palindrome(palin)
定义为
string palin = "";
cout << "Enter a palindrome:\n";
getline(cin, palin);
Pstring palindrome(palin);
和当前的测试方法bool isPalindrome(string pal)
定义为
bool isPalindrome(string pal)
{
bool flag;
cout << "Do I have access to this?";
cout << pal;
//code goes here to check for palindrome, return bool
}
我想让我的Pstring类对象回文式使用main中的isPalindrome方法,但是当我尝试通过使用palindrome.isPalinedrome(palin);
它调用该方法时,似乎无法访问该方法。
我该怎么做才能允许main中的类对象使用该类之外的方法?
您isPalinedrome()
在Pstring
类中没有定义方法,因此无法像palindrome.isPalinedrome()
在主代码中那样调用它。
您不必Pstring
尝试在主代码中调用函数,而应将回文逻辑移至中Pstring
,然后主代码可以询问Pstring
何时需要。
试试这个:
class Pstring
{
private:
string value;
public:
Pstring() { }
Pstring(const string &s) { setString(s); }
void setString(const string &s) { value = s; }
string getString() const { return value; }
// add this...
bool isPalindrome() const {
//code goes here to check value for palindrome, return bool
}
};
然后您的主要代码可以做到这一点:
bool isPalindrome(const string &value)
{
Pstring palindrome(value);
return palindrome.isPalindrome();
// or simply:
// return Pstring(value).isPalindrome();
}
int main()
{
string palin;
cout << "Enter a palindrome:\n";
getline(cin, palin);
if (isPalindrome(palin)) {
// do something ...
} else {
// do something else...
}
return 0;
}
或这个:
int main()
{
string palin;
cout << "Enter a palindrome:\n";
getline(cin, palin);
Pstring palindrome(palin);
if (palindrome.isPalindrome()) {
// do something ...
} else {
// do something else...
}
return 0;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句