特基础特基础的东西随便写写

来源:互联网 发布:c语言中的贪心算法 编辑:程序博客网 时间:2024/04/30 10:24

以下代码是某视频课后练习题

#include <iostream>#include <stdlib.h>#include <string>using namespace std;/** * 定义人类: Person * 数据成员: m_strName * 成员函数: attack() */class Person{public:    string m_strName;    void attack()    {        cout << "attack" << endl;    }};/** * 定义士兵类: Soldier * 士兵类公有继承人类 * 数据成员: m_strName * 成员函数: attack() */class Soldier:public Person{public:    string m_strName;    void attack()    {        cout << "fire!!!" << endl;    }};int main(void){    // 实例士兵对象    Soldier s;    // 向士兵属性赋值"tomato"    s.m_strName = "tomato";    // 通过士兵对象向人类属性赋值"Jim"    s.Person::m_strName = "Jim";    // 打印士兵对象的属性值    cout << s.m_strName << endl;    // 通过士兵对象打印人类属性值    cout << s.Person::m_strName << endl;    // 调用士兵对象方法    s.attack();    // 通过士兵对象调用人类方法    s.Person::attack();    return 0;}

记录下在视频里学到的还算重要的东西

#include "Person.h" //计算机会在程序的目录下去寻找此文件,各种新建的.cpp .h 都在程序的同目录下,#include <Person.h> //计算机会搜索程序的默认库,即微软提供的一整套库的框架#include <stdlib.h> //右击,打开文档<>,就能打开库了。。。顺便找出存储位置

以下是大概只有本人能看懂的乱码笔记了

soldier.play();    soldier.Person::play();因为被隐藏继承下来的函数名相同的函数,不能形成重载,只能发生隐藏isA  Soldier s1;  Person p1; Person *p2 = &s1;  yess1 = p1;  Soldier *s2 = &p1; novoid fun1(Person *p){}  void fun2(Person &p){}int main{Person p1; Soldier s1; fun1(&p1); fun2(p1); fun1(&s1); fun2(s2);Person *p = new Soldier; delete p; 执行了: Person()  Soldier()  ~Person() 存在内存泄漏所以,要virtual~Person()   然后,~Soldier()即使不加virtual也是虚函数fun(Person p){创建临时对象Person  ....code....   销毁临时对象Person}fun(Person &p){使用别名,不创建对象}fun(Person *p){使用指针,不创建对象}
原创粉丝点击