-
我理解:
从栈中实例化,实际类似定义一个变量;
从堆中实例化,是开辟了一片地址,定义了一个指针;
但是"."和“->”都是指针的调用方式?
查看全部 -
对象的生命周期
查看全部 -
6-7之后未做笔记,未完成
查看全部 -
析构函数:不允许加任何参数,和构造函数不同
析构函数存在的必要性:唯一功能,释放空间,不允许参数,不允许重载
查看全部 -
拷贝构造函数的参数是确定的,不能重载
查看全部 -
未看,跳过,考完后补。
查看全部 -
实例化三个对象,但只打印了一个Student,
实例化一定调用构造函数,但不是调用的不是普通的构造函数,而是一种特殊的构造函数,叫拷贝构造函数。
拷贝构造函数在名称上与普通的构造函数一样,但在参数上有严格要求:
上图中stu2和stu3实例化对象时执行的是拷贝构造函数。
查看全部 -
卡了4:15未完成
查看全部 -
不急,未做笔记
查看全部 -
Const 不能被付值
查看全部 -
默认构造函数:实例化两个对象: int main(void){ Student stu1(); Student *p = NULL; p = new Student();//从堆中去实例化一个对象,并用指针去指向它 } //默认构造函数,在实例化是不需要传递参数的构造函数叫做默认构造函数 class Student{ public: Student(){}//默认构造函数法一 Student(string name = "lizhien");//默认构造函数法二 private: string m_strName; } 构造函数初始化列表 class Student { public: Student():m_strName("lizhien"),m_iAge(10){}//注意语法 private: string m_strName; int m_iAge; }; 初始化列表特性: 初始化列表先于构造函数执行 初始化列表只能用于构造函数 初始化列表可以同时初始化多个数据成员
查看全部 -
代码未敲,不急,考完再看
查看全部 -
对象的结构
内存分区:
栈区:内存不用程序员操心,堆区,用new定义,程序员需要用delete来释放空间
为避免多次初始化或者忘记初始化,采用构造函数:
构造函数在对象实例化时被自动调用
构造函数与类同名
构造函数没有返回值
构造函数可以有多个重载形式
实例化对象时仅用到一个构造函数
当用户没有定义构造函数时,编译器自动生成一个构造函数,空的
。
查看全部 -
分文件类外定义先略视频9分后
查看全部 -
//同文件类外定义代码演示 #include <iostream> #include <stdlib.h> #include <string.h> using namespace std; class Teacher { public: //只声明其成员函数7个set get,函数实现在类外进行实现 void setName(string _name); string getName(); void setGender(string _gender); string getGender(); void setAge(int _age); int getAge(); void teach(); private: string m_strName; string m_strGender; int m_iAge; }; //开始类外定义 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; } void Teacher::setGender(string _gender){ m_strGender = _gender; } string Teacher::getGender(){ return m_strGender; } void Teacher::teach(){ cout << "现在开始上课" << endl; } int main(){ Teacher t; t.setName("孔子"); t.setAge(30); t.setGender("男"); cout << t.getName() << " "<< t.getGender() << " " << t.getAge() <<endl; t.teach(); return 0; }
查看全部
举报
0/150
提交
取消