C++ Print()函数无法输出向量,有什么问题吗?
所以我的工作就是描述我们老师给我们的电话簿作业原型的功能。他还给了我们一个内置的C++ Print()函数无法输出向量,有什么问题吗?,c++,function,vector,C++,Function,Vector,所以我的工作就是描述我们老师给我们的电话簿作业原型的功能。他还给了我们一个内置的main(),我们不能更改他的main()或原型,只能描述它们。我正在处理void print()函数,它靠近底部。cout括号 因为成员变量name和phone已设置为private(不能在类本身之外访问它们)。幸运的是,Person类中已经有一个函数可以为您打印它: void Person::print() const { cout << endl << name <<
main()
,我们不能更改他的main()
或原型,只能描述它们。我正在处理void print()
函数,它靠近底部。cout
括号
因为成员变量name
和phone
已设置为private
(不能在类本身之外访问它们)。幸运的是,Person类中已经有一个函数可以为您打印它:
void Person::print() const
{
cout << endl << name << " " << phone;
}
同样的原则适用于
改进建议
不要假设cout
或cin
在课堂上的任何地方。在类实现中使用其中一个函数时,将函数更改为使用std::ostream&
和std::istream&
作为输入参数。然后,您可以选择在调用函数时使用任何std::ostream
或std::istream
。您可以决定从文件中读取数据,或将数据写入文件。在main
中做出该决定,并使类不受该决定的影响
例如,将Person::print()
更改为:
void print(std::ostream& out) const;
void print(vector<Person> &phone_book, std::ostream& out)
{
for(int i=0; i < phone_book.size(); i++)
{
phone_book[i].print(out);
out << " ";
}
}
以及实施:
void Person::print(std::ostream& out) const
{
out << endl << name << " " << phone;
}
个人
不需要。因此,您要么必须重载它,要么必须分别cout
类的成员(基本上是一样的,但是重载了太好了第一个方法起作用了,我忘了我有一个用于打印的类函数!!!如果可以的话,我会更改参数,但他严格指定要维护他使用的参数。)provided@BroBama不幸的是,一些教师没有注意到这些细节。
cout << phone_book[i].name << " - " << phone_book[i].phone << endl;
void Person::print() const
{
cout << endl << name << " " << phone;
}
for(int i=0; i < phone_book.size(); i++)
phone_book[i].print();
class myVar
{
public:
int value;
myVar operator+(myVar varToSubtract)
{
return value - varToSubtract;
}
};
cout << phone_book[i] << " ";
void print(vector<Person> &phone_book)
{
for(int i=0; i < phone_book.size(); i++)
{
phone_book[i].print();
cout << " ";
}
}
void print(std::ostream& out) const;
void Person::print(std::ostream& out) const
{
out << endl << name << " " << phone;
}
void print(vector<Person> &phone_book, std::ostream& out)
{
for(int i=0; i < phone_book.size(); i++)
{
phone_book[i].print(out);
out << " ";
}
}