如果未在类C ++中定义方法,如何在类对象上使用方法

我可以

我有课 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中的类对象使用该类之外的方法?

雷米·勒博(Remy Lebeau)

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在单个约束中同时使用方法和类类型参数?

如果初始化方法的参数未在类中声明,将会发生什么?

如何在其他类中使用方法而不创建新对象

如何在Delphi中的接口定义中支持类方法

对空类使用方法

如果在超类中定义了方法,则如何根据调用该对象的对象更改结果

如何在ruby类中从静态方法调用对象方法?

如何在类中使用方法比较类的两个对象

如果未在特定类中声明getItem方法,该如何在该类上调用

在jQuery的拖动事件中,在类中定义的使用方法

如何在类外使用方法对象(在类中)?

如何在自定义类对象上使用pandas中的.loc方法?

如何在类中使用方法或执行语句

如何在R中定义新的类方法?

如何通过父类指针使用未在父类中定义的子类方法?

如何在React的类组件中定义方法?

Apache Velocity模板中自定义对象类的使用方法

如何在Python类中添加自定义方法?

如果C#中的关键字未在系统类中定义,那么CLR中的关键字在哪里?

如何在C ++中重新定义类对象

VB.NET-如何在linq中向类对象添加自定义方法?

如何在TypeScript中使用方法动态扩展类?

如何在Objective C中的类方法上使用self

如何在没有调用对象的情况下使用在另一个类中定义的方法?

使用类中对象的方法

如何在类构造函数中使用方法数据 c# xamarin

如何在扩展类中使用方法并在主类中使用它们

如何在 c# 中使用方法(如果可能)实例化一个类?

如何在没有类的对象上使用 bs4 中的 find_all 方法