当我们调用函数时,如果没有像func这样的参数传递,则需要参数括号();与函数(); [关闭]

Posted

技术标签:

【中文标题】当我们调用函数时,如果没有像func这样的参数传递,则需要参数括号();与函数(); [关闭]【英文标题】:when we call function, is argument parenthesis () is needed if no argument pass like func; vs func(); [closed] 【发布时间】:2020-07-24 08:45:50 【问题描述】:

静态函数getROI 总是返回1 并且还会导致警告:

'static float Account::getROI()'的地址永远不会为NULL

#include <iostream>

using namespace std;

class Account

private:
    int account_no;
    int balance;
    static float ROI;
public:
    void setBalance(int x)balance=x;
    int getBalance()return balance;
    void setAccountNo(int y)account_no=y;
    int getAccountNo()return account_no;
    static void setROI(float z)ROI=z;
    static float getROI()return ROI;

;
float Account::ROI =0;
int main()

    cout << "STATIC" << endl;
    Account obj;
    obj.setAccountNo(3435647);
    obj.setBalance(1000000);
    obj.setROI(4.9);
    cout<<"Account No : "<<obj.getAccountNo()<<endl;
    cout<<"Balance    = "<<obj.getBalance()<<endl;
    cout<<"Rate of int= "<<obj.getROI;
    return 0;

【问题讨论】:

投票结束为错字。 obj.getROI -> obj.getROI() 【参考方案1】:

你想要obj.getROI(),而不是obj.getROI

【讨论】:

【参考方案2】:

它说地址永远不会是零。

这是真的......如果地址为零,读取它将取消引用空指针。

所以您认为您正在查看数据,但实际上您正在查看指向数据的指针,并且(我推测)将该地址与零进行比较。

【讨论】:

我在阅读代码之前把它放在那里,现在我可以更具体了。您忘记了括号,因此您获取了函数的地址,而不是调用它。

以上是关于当我们调用函数时,如果没有像func这样的参数传递,则需要参数括号();与函数(); [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何调用Func并将其传递给构造函数中具有较少参数的另一个Func?

PHP 默认参数函数调用

shell 自定义带参数函数

值传递和引用传递

C语言函数调用约定

JS怎么样调用IOS并且传递参数?