请释疑解惑
定义了如下一个类模板,如果它的数据成员是一个含多个数据成员的类对象时,如果逐个去修改这个成员中的数据成员(非全部更改)?
#ifndef CLIST_H_
#define CLIST_H_
template <typename T>
class clist
{
public:
clist(); ~clist(); class Iterator;
Iterator begin() const;
Iterator end() const;
void push_back(const T&);
void pop_head();
size_t size()const;
void edit(const Iterator&,T&);
template <typename U>
void edit(const Iterator&,U,int,void (*)(const Iterator&,U,int));//这个接口对吗,应如何实现?
template <typename U>
friend std::ostream& operator<<(std::ostream& out,const clist<U>& lst);
private:
struct lnode
{
lnode* next; T val;
};
lnode* front; lnode* rear; size_t _size;
};
//...
#endif //CLIST_H_
#ifndef STU_H_
#define STU_H_
struct node
{
node(){}
node(std::string name,std::string sex,int id,float ave)
{ _name=name;_sex=sex;_id=id;_ave=ave; }
std::string _name; std::string _sex; int _id; float _ave;
friend std::istream& operator>>(std::istream&,node&);
friend std::ostream& operator<<(std::ostream&,const node&);
};
std::istream& operator>>(std::istream& in,node& n)
{
std::cout<<"依次输入姓名/性别/学号/成绩:";
in>>n._name>>n._sex>>n._id>>n._ave;
return in;
}
std::ostream& operator<<(std::ostream& out,const node& n)
{
out<<"姓名:"<<n._name<<std::endl<<"性别:"<<n._sex<<std::endl
<<"学号:"<<n._id<<std::endl<<"成绩:"<<n._ave<<std::endl;
return out;
}
#endif //STU_H_
...全文


