c++作为一种成熟的面相对象语言,被越来越多的人所接受。尽管它受到了c#、java的冲击,但是它仍在高级语言中占据着十分重要的地位。
在论坛上看到一些朋友对c++中的一些基本概念仍十分模糊,我就谈谈我对c++的一些认识。
(1)关于new
c++中的分配内存可以使用new,这有别于c语言中的malloc,尽管它们十分类似,但是在开辟空间时,它们的区别是很大的。
例如: int a[10];
这样一条语句,在c语言中,系统会在运行时候为它分配10个int类型大小的内存(可能不能完全被使用);而如果采用new的话,系统会根据实际利用内存的情况为起开辟空间。
(2) 关于重写和重载
重写和重载其实是两个不同的概念。重载是在同一个作用域中对相同函数名称,但函数的返回类型和参数类型及数目的不同的一种重新定义。而重写一般针对在基类中virtual函数的子类完全重新定义。
例如:class xly
{
public:
xly() {}
int xly_num();
int xly_num(string );
int xly_num(int );
};//重写
在论坛上看到一些朋友对c++中的一些基本概念仍十分模糊,我就谈谈我对c++的一些认识。
(1)关于new
c++中的分配内存可以使用new,这有别于c语言中的malloc,尽管它们十分类似,但是在开辟空间时,它们的区别是很大的。
例如: int a[10];
这样一条语句,在c语言中,系统会在运行时候为它分配10个int类型大小的内存(可能不能完全被使用);而如果采用new的话,系统会根据实际利用内存的情况为起开辟空间。
(2) 关于重写和重载
重写和重载其实是两个不同的概念。重载是在同一个作用域中对相同函数名称,但函数的返回类型和参数类型及数目的不同的一种重新定义。而重写一般针对在基类中virtual函数的子类完全重新定义。
例如:class xly
{
public:
xly() {}
int xly_num();
int xly_num(string );
int xly_num(int );
};//重写