定义 Staff *pStaff; (Staff是类名) 那 pStaff->Write(file);这个语句是怎么理解
来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/07/17 15:40:28
定义 Staff *pStaff; (Staff是类名) 那 pStaff->Write(file);这个语句是怎么理解
目前只学完了c++
目前只学完了c++
![定义 Staff *pStaff; (Staff是类名) 那 pStaff->Write(file);这个语句是怎么理解](/uploads/image/z/17210633-41-3.jpg?t=%E5%AE%9A%E4%B9%89+Staff+%2ApStaff%3B+%EF%BC%88Staff%E6%98%AF%E7%B1%BB%E5%90%8D%EF%BC%89+%E9%82%A3+pStaff-%3EWrite%28file%29%EF%BC%9B%E8%BF%99%E4%B8%AA%E8%AF%AD%E5%8F%A5%E6%98%AF%E6%80%8E%E4%B9%88%E7%90%86%E8%A7%A3)
pStaff->Write(file);是用file调用类Staff中的成员函数Write();但在这之前必须要使pStaff指向一个Staff类的具体对象……
再问: 恩,那它和fstream f; f.write(" ")这个函数有什么区别与联系???能否提供完整的文件关于write,read 的用法?以防以后遇到又不懂!求解,谢谢!
再答: 应当说它们二者是完全一样的。通过指针访问它指向的目标的成员时要用->运算符,而直接用变量访问时就用.运算符。像你举的这个例子fstream f; f.write(" "),如果将f用fstream *f声明成fstream型指针,那后面的f.write(" ")就要改成f->write(" ")了;当然还可以用通过指针f把它所指的变量取出来,然后再用.运算符操作,就是:(*f).write(" "),这和f->write(" ")是等价的。很遗憾,没有这方面的资料……
再问: 恩,那它和fstream f; f.write(" ")这个函数有什么区别与联系???能否提供完整的文件关于write,read 的用法?以防以后遇到又不懂!求解,谢谢!
再答: 应当说它们二者是完全一样的。通过指针访问它指向的目标的成员时要用->运算符,而直接用变量访问时就用.运算符。像你举的这个例子fstream f; f.write(" "),如果将f用fstream *f声明成fstream型指针,那后面的f.write(" ")就要改成f->write(" ")了;当然还可以用通过指针f把它所指的变量取出来,然后再用.运算符操作,就是:(*f).write(" "),这和f->write(" ")是等价的。很遗憾,没有这方面的资料……