在這里我用OOP的概念實作了一個c 程式。假設一個公司有1000個銷售員(1000個Salesman Class物件)。如果我想列印每一個銷售員的名字(使用回圈或其他方式),如何做呢?不僅僅是為了列印名字,假設公司想找到花費的平均工資。如果我可以在該類中的所有物件上運行,那就很容易了。
這是我的代碼(我把代碼放在這里只是為了參考)
。#include <string>
#include <iostream>
class Salesman
{
private:
int salesmanId。
string salesmanName;
int salary。
string contactNumber;
public:
Salesman()。
~Salesman()。
void setSalesmanDetails(int id, string name, int sal, string number)。
void displaySalesmanDetails();
void setSalesmanContactNumber(string number);
};
void Salesman ::setSalesmanDetails(int id, string name, int sal, string number)
{
salesmanId = id;
salesmanName = name;
salary = sal;
contactNumber = number;
}
void Salesman ::displaySalesmanDetails( )
{
cout << "Salesman ID: " << salesmanId << endl;
cout << "Salesman Name: " << salesmanName << endl;
cout << "薪資。" << salary << endl;
cout << "聯系號碼: " << contactNumber << endl
<<endl;
}
void Salesman::setSalesmanContactNumber(string number)
{
contactNumber = number;
}
Salesman::Salesman()
{
}
Salesman::~Salesman()
{
}
int main(int argc, char *argv[]) /span>
{
字串號碼。
Salesman *s1 = new Salesman;
s1->setSalesmanDetails(1, "John"/span>, 30000, "772358375"/span>) 。
Salesman *s2 = new Salesman;
s2->setSalesmanDetails(2, "Ann"/span>, 40000, "773029452"/span>) 。
Salesman *s3 = new Salesman;
s3->setSalesmanDetails(3, "Leema", 35000, "778294526") 。
}
uj5u.com熱心網友回復:
只要做一個存盤有SalesMan物件的向量的類。讓這個類能夠添加salesMan和另一個成員函式來遍歷所有的推銷員并列印出細節。
class SalesMen
{
public:
SalesMen() = default;
public:
void AddSalesMan(const Salesman& salesMan)
{
salesMen.push_back(salesMan)。
}
void PrintDetails()
{
for(auto& salesMan : salesMen)
{
salesMan.displaySalesmanDetails()。
}
}
private:
std::vector<Salesman> salesMen;
};
int main(int argc, char* argv[]) /span>
{
銷售員 salesMen{};
銷售人員s1;
s1.setSalesmanDetails( 1, "John"/span>, 30000, "772358375"/span> )
salesMen.AddSalesMan(s1)。
銷售人員s2;
s2.setSalesmanDetails(2, "Ann"/span>, 40000, "773029452"/span>) 。
salesMen.AddSalesMan(s2)。
銷售人員s3;
s3.setSalesmanDetails(3, "Leema"/span>, 35000, "778294526"/span>) 。
salesMen.AddSalesMan(s3)。
salesMen.PrintDetails()。
uj5u.com熱心網友回復:
對于一個類的輸出,你需要覆寫插入運算子<<。在這一點上,你的做法幾乎與你的顯示函式相同。有了它,你可以將你的代碼輸出到std::cout或一個檔案或任何其他流。
請閱讀有關運算子多載的內容,特別是插入器和提取器。
在你的主函式中,你可以簡單地使用一個std::vector來存盤你的銷售人員。
然后在一個簡單的回圈中使用上述插入運算子輸出所有的東西。
請看下面的例子代碼:
#include <string>
#include <iostream>
#include <fstream>
#include <vector>
使用 std::string。
using std::cout;
using std::endl;
class Salesman
{
private:
int salesmanId。
string salesmanName;
int salary。
string contactNumber;
public:
Salesman()。
~Salesman()。
void setSalesmanDetails(int id, string name, int sal, string number)。
void displaySalesmanDetails();
void setSalesmanContactNumber(string number);
friend std::ostream& operator << (std::ostream& os, const Salesman& sm) {
return os << "Salesman ID: " << sm.salesmanId < < endl
<< "Salesman Name: " << sm.salesmanName << endl
<< "薪資。" << sm.salary << endl
<< "聯系號碼: " << sm.contactNumber << endl << endl。
}
};
void Salesman ::setSalesmanDetails(int id, string name, int sal, string number)
{
salesmanId = id;
salesmanName = name;
salary = sal;
contactNumber = number;
}
void Salesman ::displaySalesmanDetails( )
{
cout << "Salesman ID: " << salesmanId << endl;
cout << "Salesman Name: " << salesmanName << endl;
cout << "薪資。" << salary << endl;
cout << "聯系號碼: " << contactNumber << endl
<<endl;
}
void Salesman::setSalesmanContactNumber(string number)
{
contactNumber = number;
}
Salesman::Salesman()
{
}
Salesman::~Salesman()
{
}
int main(int argc, char *argv[]) /span>
{
std::vector<Salesman> salesman{}。
串號。
銷售員s1。
s1.setSalesmanDetails(1, "John"/span>, 30000, "772358375"/span>) 。
salesman.push_back(s1)。
銷售員s2;
s2.setSalesmanDetails(2, "Ann"/span>, 40000, "773029452"/span>) 。
salesman.push_back(s2)。
銷售員s3;
s3.setSalesmanDetails(3, "Leema"/span>, 35000, "778294526"/span>) 。
salesman.push_back(s3)。
for (const Salesman& sm : salesman)
std::cout << sm;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/310487.html
標籤:
上一篇:動態添加一個有缺陷的專案時,Extjs應用程式崩潰了
下一篇:Enumerate()函式或類?
