不能把 class 和 main 函数放在一起吗?

Can't put class with main function?

我正在做的事情是制作一个代码,专注于制作一个 class 来颠倒数字的顺序。然后这将被放入将消除任何尾随零的主代码中。我似乎无法理解 classes 是如何工作的以及我哪里出错了。这是我的代码:

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 中的反向函数在主函数中起作用。我是 C++ 的新手,不确定我哪里出错了。如有任何帮助,我们将不胜感激!

好的,你的代码有很多错误或者学习错误。您的头文件应该类似于:

#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.
}

然后您可以按如下方式使用您的 class:

#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;
}