颜回:不迁怒 不贰过

《论语∙雍也》哀公问:“弟子孰为好学?” 孔子对曰:“有颜回者好学,不迁怒,不贰过。”
鲁哀公问孔子说:“您的弟子之中谁最好学?” 孔子回答说:“颜回好学,不迁怒于人,不重复自己的过错。”

在这里插入图片描述
《论语集释》:“问好学而答以不迁怒不贰过,则古人所谓学,凡切身之用皆是也。古人之学,在学为人。今人之学,在求知识。”

    不迁怒,就是自己有什么烦恼和愤怒,不发泄到别人身上去。迁怒于人是伤害别人,迁怒于己其实是在伤害自己。一个真正好学的人,应该虚怀若谷。不管别人的善意批评,还是所谓恶意嘲讽,都不会迁怒于人,更不会为自己的错误找出许多争辩的理由。

    不贰过,就是知错就改,不犯两次同样的错误,这更是难上加难。我们总说吃一堑,长一智,可是被同一块石头绊倒两次的人,生活中还少吗?第一次就把正确的事情做对,看似简单的一句话,可是仔细想想,我们真的能做到吗?

在这里插入图片描述
我们修行,就需要把“不迁怒,不贰过”作为自己的行为准则,坚持用这种精神来加强自己的人格修养,时时注意修正自己、完善自己,这也正是我们行者追求的一种境界!
在这里插入图片描述

这段代码哪错了 #include <iostream> #include <iomanip> using namespace std; class Staff { protected: int code; string name; static int count; public: Staff(string n) { name = n; code = count; count++; } void SetName(string s) { name = s; } string GetName() { return name; } int GetCode() { return code; } static int GetStaffCount() { return count; } }; class Teacher : virtual public Staff { protected: string subject; public: Teacher(string n, string m) : Staff(n) { subject = m; } void SetSubject(string s) { subject = s; } string GetSubject() { return subject; } }; class Officer : virtual public Staff { protected: string work; public: Officer(string n, string m) : Staff(n) { work = m; } void SetWork(string s) { work = s; } string GetWork() { return work; } }; class Teacher_Officer : public Teacher, public Officer { public: Teacher_Officer(string n, string m, string s) : Staff(n), Teacher(n, m), Officer(n, s) {} }; int main() { Teacher t1("孔子", "儒家文学"); // 创建教学类员工t1 Teacher t2("公输班", "建筑学"); Officer o1("端木赐", "财务科长"); // 创建教辅类员工o1 Teacher_Officer to3("颜回", "儒家文学", "副院长"); // 创建教师教辅类员工to3 cout << "共有教职工" << Staff::GetStaffCount() << "人" << endl; cout << t1.GetCode() << ", " << t1.GetName() << ", " << t1.GetSubject() << endl; cout << t2.GetCode() << ", " << t2.GetName() << ", " << t2.GetSubject() << endl; cout << o1.GetCode() << ", " << o1.GetName() << ", " << o1.GetWork() << endl; cout << to3.GetCode() << ", " << to3.GetName() << ", " << to3.GetSubject() << ", " << to3.GetWork() << endl; return 0; }
05-17
这段代码有两个问题: 1.需要将 `count` 初始化为 0,因为静态成员变量不会自动初始化为 0。 2.在 `Teacher_Officer` 类的构造函数中,应该只给 `Teacher` 和 `Officer` 传递它们自己的参数,而不是将 `Staff` 类的参数也传递进去。 修改后的代码如下: ``` #include <iostream> #include <iomanip> using namespace std; class Staff { protected: int code; string name; static int count; public: Staff(string n) { name = n; code = count; count++; } void SetName(string s) { name = s; } string GetName() { return name; } int GetCode() { return code; } static int GetStaffCount() { return count; } }; int Staff::count = 0; class Teacher : virtual public Staff { protected: string subject; public: Teacher(string n, string m) : Staff(n) { subject = m; } void SetSubject(string s) { subject = s; } string GetSubject() { return subject; } }; class Officer : virtual public Staff { protected: string work; public: Officer(string n, string m) : Staff(n) { work = m; } void SetWork(string s) { work = s; } string GetWork() { return work; } }; class Teacher_Officer : public Teacher, public Officer { public: Teacher_Officer(string n, string m, string s) : Teacher(n, m), Officer(n, s) {} }; int main() { Teacher t1("孔子", "儒家文学"); // 创建教学类员工t1 Teacher t2("公输班", "建筑学"); Officer o1("端木赐", "财务科长"); // 创建教辅类员工o1 Teacher_Officer to3("颜回", "儒家文学", "副院长"); // 创建教师教辅类员工to3 cout << "共有教职工" << Staff::GetStaffCount() << "人" << endl; cout << t1.GetCode() << ", " << t1.GetName() << ", " << t1.GetSubject() << endl; cout << t2.GetCode() << ", " << t2.GetName() << ", " << t2.GetSubject() << endl; cout << o1.GetCode() << ", " << o1.GetName() << ", " << o1.GetWork() << endl; cout << to3.GetCode() << ", " << to3.GetName() << ", " << to3.GetSubject() << ", " << to3.GetWork() << endl; return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值