gpt4 book ai didi

c++ - 无法访问对象 vector 中的成员函数

转载 作者:太空宇宙 更新时间:2023-11-04 13:37:41 24 4
gpt4 key购买 nike

我试图简单地创建一个对象 vector ,向其中添加一个对象,然后通过访问函数“getter's”在 vector 中显示该对象中的一些变量。代码可以编译,但对于返回字符串的函数和返回 double 的函数,它没有显示任何内容。我相信这很简单……你能帮忙吗(几个小时后交作业 :S)?

#include <iostream>
#include <vector>
#include <string>
using namespace std;

class Employee
{
string fName, lName;
double weeklyIncome, grossSales, bonus;
public:
Employee(){};
Employee(string fn, string ln, double sales)
{
fName = fn;
lName = ln;
grossSales = sales;
bonus = sales * 0.09;
weeklyIncome = 200;
}
double getNetIncome() {return bonus + weeklyIncome;}
string getfName() {return fName;}
double getgrossSales() {return grossSales;}
~Employee(){};
};

int main()
{
vector<Employee> salespeople(15);
Employee e1("John", "Smith", 5000);
salespeople.push_back(e1);
cout << salespeople[0].getNetIncome();
cout << salespeople[0].getgrossSales();
cout << salespeople[0].getfName();
system("pause");
return 0;
}

最佳答案

vector<Employee> salespeople(15);      // This creates a vector of 15 elements
Employee e1("John", "Smith", 5000);
salespeople.push_back(e1); // Now you have added the 16-th element
cout << salespeople[0].getNetIncome(); // The first element is still the default
// constructed element.
cout << salespeople[0].getgrossSales();
cout << salespeople[0].getfName();

您可以通过使用来解决问题

vector<Employee> salespeople;  // Create an empty vector and then
// add items to it.

或通过改变

salespeople.push_back(e1);

salespeople[0] = e1;

改进建议

更改默认构造函数以将 double 变量初始化为正常值。

Employee() : weeklyIncome(0.0), grossSales(0.0) bonus(0.0) {};

关于c++ - 无法访问对象 vector 中的成员函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28997538/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com