Re:实验2 实验内容整体回答完整,任务四使用命名空间 + 自由函数,逻辑无误,很好! 面向对象程序设计(南京信息工程大学) aqwery 2025-10-30 14:37 Re:实验2 gcd函数中使用了std::swap(a, b),缺少头文件<algorithm>,任务四使用友元函数方法,逻辑无误。 面向对象程序设计(南京信息工程大学) aqwery 2025-10-30 14:32 Re:Test2 建议最好在构造函数中检查分母为0的错误;分数的规范要求分母必须为正数(符号通过分子体现),但构造函数未调整分母符号,比如分母是负数时。 面向对象程序设计(南京信息工程大学) aqwery 2025-10-30 14:28 Re:实验2 当分数分子为0时,如Fraction(0, 5)化简后为0/1,output函数会输出0/1,但任务要求应直接输出0。第二部分代码48行处应补充分子为0的处理逻辑,else if (up == 0) { std::cout << 0; ......... } 面向对象程序设计(南京信息工程大学) aqwery 2025-10-30 14:23 Re:实验2 任务四最好在构造函数中处理分母为0的情况,能看出来是认真思考完成,继续努力! 面向对象程序设计(南京信息工程大学) aqwery 2025-10-30 13:58 Re:OOP-实验二 任务四分数类应在构造函数Fraction::Fraction(int u, int d) : up(u), down(d)中完成约分和符号调整,在output函数中的化简只能保证 “显示正确”,没有解决对象内部数据未标准化的问题。 面向对象程序设计(南京信息工程大学) aqwery 2025-10-30 13:24 Re:OOP-实验2 任务四构造函数未处理分母为负的情况,比如构造Fraction(3, -4)时,约分后down仍为-4没有转为正数,可以这样调整: if (down < 0) { // 若分母为负,分子分母同时取反(保证分母为正) up = -up; down = -down; } 面向对象程序设计(南京信息工程大学) aqwery 2025-10-30 13:18 Re:实验2 实验内容回答完整,能看出通过自己独立思考完成,很好! 面向对象程序设计(南京信息工程大学) aqwery 2025-10-30 13:11 Re:实验二 任务四应在构造函数中添加分母为0的检查,避免除0异常。 Fraction::Fraction(int u, int d) { if (d == 0) throw std::invalid_argument("分母不能为0"); ........... 面向对象程序设计(南京信息工程大学) aqwery 2025-10-30 13:01 Re:实验二 任务四代码中Fraction(int u, int d)构造函数未检查d是否为0。 任务二问题2-1这是我的理解,可供参考~ 可以通过友元直接访问私有成员,也可以通过get_real()和get_imag()等公有接口间接访问,但不论哪种方法,其功能的实现都离不开对real和imag这两个私有数据的 面向对象程序设计(南京信息工程大学) aqwery 2025-10-30 12:55 Re:实验2 任务二问题2-1这是我的理解,可供参考~ 可以通过友元直接访问私有成员,也可以通过get_real()和get_imag()等公有接口间接访问,但不论哪种方法,其功能的实现都离不开对real和imag这两个私有数据的依赖,确实需要访问私有数据。只是访问方式可以选择友元或公有接口,不是必须用友元。 面向对象程序设计(南京信息工程大学) aqwery 2025-10-30 12:43 Re:实验二 问题回答完整,任务二问题2-1这是我的理解,可供参考~ 可以通过友元直接访问私有成员,也可以通过get_real()和get_imag()等公有接口间接访问,但不论哪种方法,其功能的实现都离不开对real和imag这两个私有数据的依赖,确实需要访问私有数据。只是访问方式可以选择友元或公有接口,不是必 面向对象程序设计(南京信息工程大学) aqwery 2025-10-30 12:41 Re:NUIST-OOP-Lab02 任务四题目要求输出化简后的形式,比如当分母为1时应直接输出分子(如2/1应输出2),当分子为 0 时应输出0(如0/1应输出0),输出结果不符合题目要求。 面向对象程序设计(南京信息工程大学) aqwery 2025-10-29 21:36 Re:OOP实验二 任务二问题2-1这是我的理解,可供参考~ 不论通过友元直接访问私有成员,还是通过get_real()和get_imag()等公有接口间接访问,功能的实现都离不开对real和imag这两个私有数据的依赖,确实需要访问私有数据。只是访问方式可以选择友元或公有接口,不是必须用友元。 任务四没有在构造函数F 面向对象程序设计(南京信息工程大学) aqwery 2025-10-29 21:30 Re:现代c++编程体验2 任务二问题2-1 否,可以通过接口拿到数据 面向对象程序设计(南京信息工程大学) aqwery 2025-10-29 20:58 Re:实验二 任务四题目要求分数化简后分母应为正数,负号统一放在分子,例如Fraction(3, -2)应化简为-3/2,似乎没有对这部分进行处理,输出结果也应为f3=-3/2。 面向对象程序设计(南京信息工程大学) aqwery 2025-10-29 20:49 Re:oop实验二 @aqwery OK,谢谢助教老师 面向对象程序设计(南京信息工程大学) 安宁的空白 2025-10-29 20:42 Re:实验二 实验任务回答完整准确,很多地方都能看出自己的独立思考,很好! 面向对象程序设计(南京信息工程大学) aqwery 2025-10-29 20:41 Re:实验作业2 问题回答很完整,能看出是经过自己独立思考完成的,实验4使用命名空间+自由函数的方法,方案设计合理。 面向对象程序设计(南京信息工程大学) aqwery 2025-10-29 20:05 Re:oop实验二 问题回答完整准确,任务二缺少运行测试结果截图。 任务三第一部分的代码47行处(output函数中对s.down == 0的判断)无法真正处理分母为 0 的问题,要在构造函数中提前检查分母是否是0。 面向对象程序设计(南京信息工程大学) aqwery 2025-10-29 19:55