[英]Is there any method to call class member functions?
有什么方法可以調用顯示 function 的采購 class。
#include <iostream>
#include<stdio.h>
#include<string>
using namespace std;
class Purchase
{
private:
string userName;
int countOfItems;
float amount;
float static totalAmt;
int static totalCountOfItems;
public:
void display(Purchase obj[],int n)
{
for(int i=0;i<n;i++)
{
setTotalAmt(obj[i].getTotalAmt()+obj[i].getAmount());
setCountOfItems(obj[i].getCountOfItems()+obj[i].getCountOfItems());
}
cout<<"Total Amount Received :"<<getTotalAmount();
cout<<"Total Number of Items sold :"<<getTotalCountOfItems();
}
};
getter 和 setter 已經是成員函數。
我如何在主 function 中調用顯示 function 我的主 function 看起來像這樣:
#include <iostream>
#include<string>
#include<stdio.h>
#include "Purchase.cpp"
using namespace std;
int main()
{
int n;
string userName;
int countOfItems;
float amount;
cout<<"Enter the Number of customers :";
cin>>n;
Purchase P[n];
for(int i=0;i<n;i++)
{
cin.ignore();
cout<<"Enter the Name of the customer :";
getline(cin,userName);
P[i].setUserName(userName);
cout<<"Enter the No of Items purchased :";
cin>>countOfItems;
P[i].setCountOfItems(countOfItems);
cout<<"Enter the purchase amount :";
cin>>amount;
P[i].setAmount(amount);
}
cout<<"Purchase Details :";
for(int i=0;i<n;i++)
{
cout<<"Customer "<<i+1<<" :"<<P[i].getUserName()<<endl;
cout<<"No of Items purchased :"<<P[i].getCountOfItems()<<endl;
cout<<"Purchase amount :"<<P[i].getAmount()<<endl;
}
cout<<"\n";
return 0;
}
最后我必須添加顯示 function 的調用,以便我可以添加每個 object 的數量和計數。
有什么方法可以調用 class 成員函數嗎?
您可以獲取成員function的地址並稍后傳遞。
但是使用 C++11 或更好(閱讀n3337 , C++11 標准),請閱讀有關 C++的更多信息,然后考慮使用lambda-expressions 。 當然使用<algorithm>
和<functional>
標准標題。
void display(Purchase obj[],int n)
為什么不能使用void display_vect(std::vector<Purchase>&vec);
? 如果您無法更改display
的 API,請考慮從您的display
成員 function 調用您的display_vect
。
閱讀五法則。
我不完全確定問題是什么,或者你被要求做什么。 但是很明顯display
不應該是Product
的成員 function 。 Product
的成員 function 應該關注一個特定的產品,但display
正在打印所有產品,所以它應該是一個獨立的功能而不是成員 function。 您的代碼應如下所示
class Product
{
...
};
void display(Purchase obj[],int n)
{
...
}
然后從main
調用它是微不足道的。
int main()
{
...
display(P, n);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.