-
构造函数在对象实例化时被调用查看全部
-
如果没有自定义的拷贝构造函数则系统自动生成一个默认的拷贝构造函数,当采用直接初始化或者复制初始化实例对象时系统自动调用拷贝构造函数查看全部
-
初始化列表先于构造函数执行,初始化列表只能用于构造函数,初始化列表可以同时初始化多个数据成员查看全部
-
构造函数在对象实例化时被自动调用 构造函数与类同名 构造函数没有返回值 构造函数可以有多个重载形式 实例化对象时仅用到一个构造函数 当用户没有定义时,编译器自动生成查看全部
-
重载构造函数查看全部
-
有参构造函数查看全部
-
无参构造函数查看全部
-
构造函数的规则和特点 1.与类同名 2.没有返回值,void也不用写 3.可以有多个重载形式,要遵循重载函数的规则 4.即使有多个构造函数也仅用到一个构造函数 5.当用户没有定义构造函数时,编译器自动生成一个构造函数查看全部
-
内存分区 栈区:int x=0;int *p=NULL; 堆区:int *p=new int[20]; 全局区:存储全局变量及静态变量 常量区:string str ="hello"; 代码区:存储逻辑代码的二进制查看全部
-
头文件中,一般包含一些类的声明,函数定义之类的东西,方便我们在源文件的主函数中使用。查看全部
-
//Teacher.cpp #include<iostream> #include<string> #include"Teacher.h" using namespace std; void Teacher::setName(string _name) { m_strName = _name; } string Teacher::getName() { return m_strName; } void Teacher::setGender(string _gender) { m_strGender = _gender; } string Teacher::getGender() { return m_strGender; } void Teacher::setAge(int _age) { m_iAge = _age; } int Teacher::getAge() { return m_iAge; } void Teacher::teach() { cout << "现在上课..." << endl; }查看全部
-
//Teacher.h #include<iostream> #include<string> using namespace std; class Teacher { public: 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; };查看全部
-
//main.cpp #include<iostream> #include<stdlib.h> #include<string> #include"Teacher.h" using namespace std; /****************************/ //定义一个Teacher类,要求分别采用同文件类外定义和分文件类外定义的方式文成 //数据成员: // 名字 // 年龄 // 性别 //成员函数: // 数据成员的数据封装函数 // 授课teach /****************************/ int main(void) { Teacher t; t.setName("孔子"); t.setGender("男"); t.setAge(30); cout << t.getName() << " " << t.getGender() << " "<< t.getAge() << endl; t.teach(); system("pause"); return 0; }查看全部
-
#include<iostream> #include<stdlib.h> #include<string> using namespace std; /* 定义一个Teacher类,要求分别采用同文件类外定义和分文件类外定义的方式文成 数据成员: 名字 年龄 性别 成员函数: 数据成员的数据封装函数 授课teach */ class Teacher { public: 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::setGender(string _gender){ m_strGender = _gender; } string Teacher::getGender(){ return m_strGender; } void Teacher::setAge(int _age){ m_iAge = _age; } int Teacher::getAge(){ return m_iAge; } void Teacher::teach(){ cout << "现在上课" << endl; } int main(void) { Teacher t; t.setName("孔子"); t.setGender("男"); t.setAge(30); cout << t.getName() << " " << t.getGender() << " "<< t.getAge() << endl; t.teach(); system("pause"); return 0; }查看全部
-
易错点1:封装的get函数前,一般不用void,视情况而定 易错点2:从堆中实例化Student *str = new Student();最后的括号容易忘记写 易错点3:cout << str->getName()<< endl;容易错写为cout<<str.m_strName,就尴尬了 技巧1:封装用的形参,名字不用纠结,直接借用类型就可以,比如string _str,或者int _int。查看全部
举报
0/150
提交
取消