【007】动态内存管理

静态内存:
变量(包括指针变量)、固定长度的数组、某给定的对象。
可以在代码中通过它们的名字或者地址来访问和使用它们。

动态内存:
由一些没有名字、只有地址的内存块构成,那些内存块是在程序运行期间动态分配的。

如果没有足够的内存空间:
那么new语句则抛出std::bad_alloc异常。
在用完内存块后要用delete把它归还给内存池。
堆是往上增长,栈是往下增长。


eg.
int *i = new int;

有一个特殊的地址叫做NULL指针,当把一个指针变量设置为NULL时,它的含义是那个指针不再指向任何东西:
int *x;
x = NULL;   //x啥都不指向

练习:
1.效果:
2.代码:
#include <iostream>
#include <string>
class Company
{
	public:
		Company(std::string theName);
		virtual void printInfo();	
	protected:
		std::string name;
		
};
class TechCompany : public Company
{
	public:
		TechCompany(std::string theName,std::string product);
		virtual void printInfo();
	private:
		std::string product;	
};
Company::Company(std::string theName)
{
	name = theName;
}
void Company::printInfo()
{
	std::cout<<"这个公司名字叫;"<<name<<"\n";
}
TechCompany::TechCompany(std::string theName ,std::string product):Company(theName)
{
	this->product = product ;
}

void TechCompany::printInfo()
{
	std::cout<<name<<"公司大量生产了"<<product<<"这款产品!\n";
	
}
int main (){
	Company *company = new Company("APPLE");
	company -> printInfo();
	
	delete company;
	company = NULL;

	company = new TechCompany("Apple","iPhone");
	company -> printInfo();
	
	delete company;
	company = NULL; 
	
	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值