如何显示在C ++中使用对象引用调用的函数的结果

时间:2018-11-18 16:22:54

标签: class object display function-call

#include "pch.h"
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <stdio.h>

using namespace std;
class LetterDistribution
{
public:   char district, trace;  
public:  int random_num; 

public : LetterDistribution(){}
     public: LetterDistribution(char dis)
    {
        district = dis;
        trace = 'Z';
    }

public: string LetterNumbers()
{

    random_num = rand();
     string letter_no  ( district + " " + random_num);
    return letter_no;
    }
};

int main()
{
srand(time(0));
    cout << "Enter district\n"<<endl;
    char dis ;
    cin >> dis;
    LetterDistribution ld(dis);
    cout << ld.LetterNumbers();
    return 0;}

我在主体“ cout << ld.LetterNumbers();”的倒数第二行中遇到错误。我是c ++的新手,我之前已经在从事C#工作。如果有人可以帮助我,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

LetterNumbers函数中有2个问题:

  1. 您不能将数字添加到字符串中,应该先将数字转换为字符串。您可以通过std::to_string(random_num)
  2. 您不能以字符开头连接字符串,因为字符就像c ++中的数字,并且在数字上添加任何内容都是数字。您应该从string开始,甚至是空的。

所以整个功能可以像这样:

string LetterNumbers()
{
  random_num = rand();
  string letter_no  ( std::string("") + district + " " + std::to_string(random_num));
  return letter_no;
}

另一个问题:(但不是错误!)

  • 在c ++中,您只能指定一次public:,之后的所有内容仍为public,直到您对其进行更改。 privateprotected也是如此。
  • 您应该使用<stdio.h>代替<cstdio>,它是c标头的c ++包装器。