**类:一组具有相同属性和行为对象的集合
对象:一个类具体的实例**
#include<iostream>
#include<string>
using namespace std;
class Students{
public:
Students(){}
Students(const Students&){}
~Students(){}
void setName(string _name){
m_strName = _name;
}
string getName(){
return m_strName;
}
void setGender(string _gender){
m_strGender = _gender;
}
string getGender(){
return m_strGender;
}
private:
string m_strName;
string m_strGender;
};
1)对象实例化
class Dog{
public:
void eat();
private:
int age;
};
从栈实例化对象 Dog dog;
从堆实例化对象 Dog *dog1=new Dog();注意释放内存,以及判断内存申请是否成功
2)对象成员访问
通过.或者->访问 dog.eat();dog1->eat();
3)数据的封装
面向对象编程的核心是对象能做什么。即调用功能函数,将数据成员的访问控制符设为private
4)类内定义与内联函数
类内定义在函数体在类的大括号中,为隐式内联 inline
5)类外定义
同文件类外定义(类的定义和函数体实现在同一个.CPP文件中)
分文件类外定义(一个头文件对应一个.CPP文件,建议用此种定义方法)
6)构造函数:对象进行初始化
内存分区:栈区、堆区、全局区、常量区、代码区
构造函数与类同名,没有返回值,
构造函数可以采用初始化列表,推荐采用此方式,初始化列表先于构造函数执行,
如果类中存在常量,必须采用初始化列表方式。
7)拷贝构造函数,后面也可以放初始化列表
Dog(const Dog&);
8)析构函数:释放申请的内存
~类名();
析构函数在对象销毁时自动调用,没有返回值,没有参数也不能重载