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