【问题标题】:Why don't I get any output?为什么我没有任何输出?
【发布时间】:2015-06-13 20:38:10
【问题描述】:

我正在尝试用 C++ 编写我的第一个 OOP 代码,但由于某种原因,我没有得到任何输出。我正在尝试创建一个包含方法 getSquare() 的类,该方法接受 int n 并返回数字的平方。谁能告诉我哪里做错了?

#include <iostream>

using namespace std;

class myClass {

public:
    int square;    
    void getSqure(int n);  
};

void myClass::getSqure(int n) {
    int square = n * n;
}

int main(){
    int n = 5;
    myClass c;

    c.getSqure(5);

    cout << endl;
    return 0;
}

【问题讨论】:

  • 你正在输出除行尾以外的任何内容

标签: c++ class methods output


【解决方案1】:

您的getSquare 函数没有做任何事情,只是定义了变量square(虽然不返回它)。让它以int 的形式返回,比如

int myClass::getSqure(int n) { // make sure to change the declaration also
    int square = n * n;
    return square;
}

然后做

cout << c.getSquare(5) << endl;

你会有一个输出。

【讨论】:

  • 感谢您的回复。好吧,我之前尝试过,但是当我尝试返回正方形时,它不会编译!
  • @Zzhh82 因为你的函数被声明为返回void。 @vsoftco 将函数更改为返回 int
  • @Zzhh82 你是不是也在你的班级里把声明改成了int getSquare(int n);
  • 这就是问题所在,我的课上没有改过!!!现在可以了!非常感谢您的帮助!
【解决方案2】:

这就是我在尽可能接近您问题的原始规则的同时解释代码的方式。

#include <iostream>
#include <conio.h>

int main()
{
    class MyClass
    {
    public:

           int Number;
           int Square;
    };

    MyClass N;

    std::cout << "Please enter a number." << std::endl;
    std::cin >> N.Number;
    std::cout << std::endl << std::endl;

    std::cout << "Original number: " << N.Number;
    std::cout << std::endl << std::endl;

    N.Square = (N.Number * N.Number);

    std::cout << "Squared number: " << N.Square;
    std::cout << std::endl << std::endl;

    std::cout << "Press any key to continue.";

    _getch();
    return(0);
}

输出:

请输入一个数字。 5

原编号:5

平方数:25

按任意键继续。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-19
    • 1970-01-01
    • 1970-01-01
    • 2021-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-21
    相关资源
    最近更新 更多