不能把类带主功能?

时间:2017-09-29 20:06:41

标签: c++ function class header member

我正在研究的是制作一个代码,专注于创建一个反转数字顺序的类。然后,这将被放入主代码,将消除任何尾随零。我似乎无法理解课程如何运作以及我出错的地方。这是我的代码:

Numbers.h

#pragma once
#include <iostream>
class Numbers
{
public:
int digit
private:
void Numbers::reverse();
};

Numbers.cpp

#include "Numbers.h
#include <iostream>

using namespace std;

void Numbers::reverse(){
int n, reversedNumber = 0, remainder;

cout << "Enter the number you would like to manipulate!   " << endl;
cin >> n;

while (n !=0)
{
remainder = n % 10;
reversedNumber = reversed Number * 10 + remainder;
n /= 10;
}
//return *this;
}

Main.cpp的

#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <string>
#include "Numbers.h"

using namespace std;

int main()
{
Numbers.reverse;

system("pause");
return 0;
}

我似乎无法在我的Numbers.cpp中使用反函数在main函数中工作。我是C ++的新手,不知道我哪里出错了。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

好的,您的代码中存在很多错误或学习错误。您的头文件应如下所示:

#pragma once

class Numbers
{
public:
  Numbers();
  ~Numbers();

  int Reverse(int input);  // Function is 'public'.
};

您的CPP文件将是(部分取自S.O. post here):

#include "Numbers.h"

Numbers::Numbers()
{
}

Numbers::~Numbers()
{
}

// No need to store the value in 'digit' since this
// is just an algorithm which can return the result.
int Numbers::Reverse(int input)
{
  int ret = 0;

  while(input > 0)
  {
    ret = ret * 10 + (input % 10);
    input = input / 10;
  }

  return ret; // Return the reversed number and let the user decide what to do.
}

然后你可以按如下方式使用你的课程:

#include "Numbers.h"
#include <iostream>

using namespace std;

int main()
{
  int num;

  cout << "Enter a number to reverse: ";
  cin >> num;

  Numbers numClass;

  cout << "Reversed number is: " << numClass.Reverse(num) << endl;

  return 0;
}