【问题标题】:Error when trying to print a private static integer from class. C++尝试从类中打印私有静态整数时出错。 C++
【发布时间】:2018-04-23 03:15:33
【问题描述】:

我的代码有问题。每次我尝试从 DivSales 类打印我的私有静态整数时,程序都会运行,但是它会打印“00007FF768191492”有人可以告诉我我的代码做错了什么吗?我在 Visual Studios 中使用 C++。请注意,我也尝试打印出 DivSales::totalSale;但是在主函数中我得到了一个类似的输出(程序运行),上面写着“00007FF726FF1492”。感谢你们对我的帮助。

 #include <iostream>
 #include <string>
 #include <iomanip>
 #include <Windows.h>
 using namespace std;


 class DivSales
 {
     private:
         static int total;
     public: 
         int qArr[4];     // here is the declared array I input the 4 integers

     static int totalSale()
     {
         return total;       // here is the function to return total.
     }

     void fourSale(int first, int second, int third, int fourth)       //these integers are inputted by user. 
     {
         if (valid(first) == true)       //this and below is an example of how I am adding to the total variable. Imagine 3 more of these. 
         {
             qArr[0] = first;
             total += first;
         }

 }

int DivSales::total = 0;
int main()
{
     DivSales div1;      //here i declare an object. I have 5 more but I will display two for example purposes. 
     div1.fourSale(6543, 3000, 4000, 5000);      // here i input the 4 integers

     cout << div1.totalSale << endl << endl;       // here I try to print out the total however it prints the error I was talking about.

}

【问题讨论】:

    标签: c++ logic


    【解决方案1】:

    这里的代码:

    cout << div1.totalSale << endl << endl;
    

    打印函数的地址。

    要打印函数的返回值,必须先用括号调用它。

    cout << div1.totalSale() << endl << endl;
    

    【讨论】:

    • 啊,我明白了。谢谢你指出这一点。并感谢您的帮助。有一双新鲜的眼睛真是太好了。
    猜你喜欢
    • 1970-01-01
    • 2010-10-07
    • 1970-01-01
    • 1970-01-01
    • 2016-02-05
    • 2021-06-21
    • 1970-01-01
    • 1970-01-01
    • 2012-07-01
    相关资源
    最近更新 更多