为了账号安全,请及时绑定邮箱和手机立即绑定
  • //header file:Teacher.h
    #ifndef TEACHER_H_INCLUDED
    #define TEACHER_H_INCLUDED
    #include<iostream>
    #include<string>
    using namespace std;
    class Teacher
    {
    public:
        Teacher(string name = "james",string gender = "男",int age = 18,int m = 160);
        //Teacher();
        void set_name(string name);
        string get_name();
        void set_gender(string gender);
        string get_gender();
        void set_age(int age);
        int get_age();
        int get_max();
    private:
        string m_strName;
        string m_strGender;
        int m_iAge;
        const int m_iMax;
    };
    #endif // TEACHER_H_INCLUDED
    //body  Teacher.cpp
    //body
    #include<iostream>
    #include"Teacher.h"
    //#include<string>
    using namespace std;
    Teacher::Teacher(string name,string gender,int age,int m):m_strName(name),m_strGender(gender),m_iAge(age),m_iMax(m)
    {
        cout<<"Teacher(string name,string gender,int age)"<<endl;
    }
    /*Teacher(){
        cout<<"Teacher()"<<endl;
        }
        */
    void Teacher::set_name(string name)
    {
        m_strName = name;
    }
    string Teacher::get_name()
    {
        return m_strName;
    }
    void Teacher::set_gender(string gender)
    {
        m_strGender = gender;
    }
    string Teacher::get_gender()
    {
        return m_strGender;
    }
    void Teacher::set_age(int age)
    {
        m_iAge = age;
    }
    //main()  demo.cpp
    #include<iostream>
    #include<stdlib.h>
    //#include<string>
    #include"Teacher.h"
    using namespace std;
    int main(void)
    {
        Teacher t1("jack","男",,100);
        cout<<t1.get_name()<<" "<<t1.get_gender()<<" "<<t1.get_age()<<" "<<t1.get_max()<<endl;
        system("pause");
        return 0;
    }


    查看全部
  • 从栈中实例化对象的方式:TV tv; TV tv[20] (系统自动分配内存,使用完毕后系统释放内存 )
    从堆中实例化对象的方式:TV *q = new TV(); TV *p = new TV[20]; (p/q分别指向系统的一块内存【使用new申请一块内存】)     
    delete q;
    delete [] ; 
    分别释放内存


    查看全部
  • 栈中实例化
    查看全部
  • 一个类只有一个构造函数,不一定是默认的。

    初始化时不需要传入参数的为默认构造函数。

    查看全部
    0 采集 收起 来源:练习

    2020-03-16

  • 内存分区。

    查看全部
  • 定义一个Student类,包含名字一个数据成员,定义无参构造函数、有参构造函数、拷贝构造函数、析构函数及对于名字的封装函数,在main函数中实例化Student对象,并访问相关函数,观察运行结果。

    查看全部
    0 采集 收起 来源:综合练习

    2020-03-14

  • 类{命名空间;成员函数;数据成员;} 数据成员{普通数据成员;string;const成员;静态数据成员;对象成员;} 成员函数{属性封装函数;一般功能函数;特殊函数{构造函数{拷贝构造函数;默认构造函数};析构函数}} 成员函数{参数默认值;函数重载;引用;const;} 对象实例化{堆中实例化;栈中实例化;}

    查看全部
    0 采集 收起 来源:总结

    2020-03-14

  • 第一次栈实例化对象打印出来的;

    第二次堆实例化对象打印出来的;

    第三次释放内存delete p调用出析构函数打印出来的


    查看全部
  • #include <iostream> #include <string> using namespace std; class Teacher { public: Teacher(string name = "Jim", int age = 1); Teacher(const Teacher &tea); ~Teacher(); void setName(string name); string getName(); void setAge(int age); int getAge(); private: string m_strName; int m_iAge; }; #include "Teacher.h" Teacher::Teacher(string name,int age):m_strName(name),m_iAge(age) { cout <<"Teacher(string name,int age)" <<endl; } Teacher::Teacher(const Teacher &tea) { cout <<"Teacher(const Teacher &tea)" <<endl; } Teacher::~Teacher() { cout <<"~Teacher()" <<endl; } void Teacher::setName(string name) { m_strName = name; } string Teacher::getName() { return m_strName; } void Teacher::setAge(int age) { m_iAge = age; } int Teacher::getAge() { return m_iAge; } #include <iostream> #include<stdlib.h> #include "Teacher.h" #include <string> using namespace std; void test(Teacher t) { } int main() {  Teacher t1;  Teacher t2(t1);  system("pause");  return 0; }

    查看全部
  • 构造函数:出生--析构函数:死亡 对象的生命历程 申请内存—初始化列表-构造函数-参与运算-析构函数-释放内存 析构函数 (  在对象销毁时,自动调用,归还系统资源   定义格式:~类名()  ) 如果没有自定义,系统自动生成 析构函数在对象销毁时自动调用 析构函数没有返回值、没有参数也不能重载

    析构函数
    定义格式:~类名()
    特性:  如果没有自定义的析构函数则系统自动生成
                析构函数在对象销毁时自动调用

                析构函数无返回值、参数,不能重载

    拷贝构造函数 只有一个const型参数,参数前加一个&引用符号

    析构函数 不加任何参数,类名前加一个 ~ 符号



    查看全部
    0 采集 收起 来源:C++ 析构函数

    2020-03-14

  • #include <string> #include <iostream> using namespace std; class Teacher { public: Teacher(string name = "Jim",int age=1); Teacher(const Teacher &tea); void setName(string _name); string getName(); void setAge(int _age); int getAge(); private: string m_strName; int m_iAge; }; #include "Teacher.h" #include <iostream> using namespace std; Teacher::Teacher(string name,int age):m_strName(name),m_iAge(age) { cout <<"Teacher(string name,int age)" <<endl; } Teacher::Teacher(const Teacher &tea) { cout <<"Teacher(const Teacher &tea)" <<endl; } void Teacher::setName(string _name) { m_strName=_name; } string Teacher::getName() { return m_strName; } void Teacher::setAge(int _age) { m_iAge=_age; } int Teacher::getAge() { return m_iAge; } #include <string> #include <iostream> #include "Teacher.h" #include<stdlib.h> using namespace std; void test(Teacher t) { } int main() { Teacher t1; test(t1); system("pause"); return 0; }

    查看全部
  • 拷贝构造函数

    定义格式:类名(const 类名&变量名)

    class Student

    {

        public:

            Student(){m_strName = "Jim";}

            Student(const Student &stu){}        //拷贝构造函数在名称上一样,但是在参数设计上却不同,const +引用

        private:

            string m_strName;

    }

    如果没有自定义的拷贝构造函数,则系统自动生成一个默认的拷贝构造函数

    当采用直接初始化或复制初始化实例化对象时,系统自动调用拷贝构造函数



    查看全部
  • #include <iostream> #include<string> using namespace std; class Teacher { public: Teacher(string name = "Jim",int age = 1,int m=100); void setName(string name); string getName(); void setAge(int age); int getAge(); int getMax(); private: string m_strName; int m_iAge; const int m_iMax; }; #include"Teacher.h" Teacher::Teacher(string  name,int age,int m):m_strName(name),m_iAge(age),m_iMax(m) { cout <<"Teacher(string  name,int age)" <<endl; } int Teacher::getMax() { return m_iMax; } void Teacher::setName(string name) { m_strName=name; } string Teacher::getName() { return m_strName; } void Teacher::setAge(int age) { m_iAge=age; } int Teacher::getAge() { return m_iAge; } #include <iostream> #include <string> #include <stdlib.h> #include "Teacher.h" using namespace std; int main(void) { Teacher t1("Merry",12,150); cout <<t1.getName() <<" " <<t1.getAge() <<" " <<t1.getMax()  <<endl; system("pause"); return 0; }

    查看全部
  • 初始化列表的特性: 初始化列表先于构造函数执行 初始化列表只能用于构造函数 初始化列表可以同时初始化多个数据成员

    1. 初始化列表存在的必要性: 关于在构造函数中赋值是不能被允许的,只能通过初始化列表的存在来初始化构造函数的参数问题

    查看全部

举报

0/150
提交
取消
课程须知
本课程是C++初级课程 需要熟练掌握C++语言基础语法
老师告诉你能学到什么?
1、类的定义与对象实例化 2、string类型及属性封装 3、类外定义 4、构造函数与初始化列表 5、析构函数

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!