一:了解内存分区
1:栈区:int x=0;int*p=NULL;//null是栈区存储,程序员不需要管理
2:堆区:int*p=new int[20];
3:全局区:存储全局变量及静态变量。
4:常量区:string str="hello";
5:代码区:存储逻辑代码的二进制。
以下在这里插入代码片
是一个对象结构
class Car
{
private:
int wheelcount;
public:
int grtWheelCount()
{return wheelcount;}
}
实例化了car1,car2,car3.对象里的数据没有初始化,那么无法进入到代码区使用。以坦克大战为例:
class Tank
{
private:
int m_iposX;//横坐标
int m_iposY;//纵坐标
public:
void int()
{m_iposX=0;m_iposY=0;}
};
对象初始化:有且仅有一次初始化;根据条件初始化。
构造函数
1:构造函数在对象实例化时被自动调用。
2构造函数与类同名。
3:构造函数没有返回值
4:构造函数可以有多个重载形式
5:实例化对象仅用到一个构造函数
6:当用户没有定义构造函数时,编译器自动生成一个构造函数
无参构造函数
class student
{
public:
student(){m_strName="jim";}
private:
string m_strName;
};
有参构造函数:
class student
{
public:
student(string name)//name就是参数
{m_strName=name;}
private:
string m_strName;
}
重载构造函数:
class student
{
public:
student(){m_strName="jim";}
student(string name)
{m_strName=name;}
private:
string m_strName;
};