gpt4 book ai didi

c++ - 使用类方法时的空输出

转载 作者:搜寻专家 更新时间:2023-10-31 01:27:49 25 4
gpt4 key购买 nike

在下面的代码中,直接调用 sumit() 函数没有得到任何输出,但是当我通过另一个函数 displayIt() (调用 sumit() )调用它时,它会显示输出。我该如何解决?并请解释发生了什么?

#include<iostream>
#include<string>
using namespace std;


template <typename C>

class ABC
{

private:
C num1, num2;

public:
ABC(C a, C b)
{
num1 = a;
num2 = b;
}

void displayIt()
{
cout << "A+B:" << sumit() << endl;
}

C sumit() { return num1 + num2; }

};

int main()
{
ABC<int> o1(2, 3);
ABC<string> o2("ABC", "XYZ");

//It doesn't display aything...
cout << "Call-1: " << endl;
o1.sumit();
o2.sumit();

//It displays the output...
cout << "Call-2: " << endl;
o1.displayIt();
o2.displayIt();

system("pause");

}

最佳答案

当然你不会得到任何输出,因为这个方法并没有尝试打印任何东西。它只是返回一个数字。

要么在 main 中执行此操作:

cout << o1.sumit() << endl;
cout << o2.sumit() << endl;

这将直接打印从该方法返回的值。

或者将displayIt的相同逻辑添加到sumit

BTW - 这个问题与 C++ Template 无关。同样的行为也会发生在普通类里面。

关于c++ - 使用类方法时的空输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52740023/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com