C++冗杂易忘基础知识整合

<1>、malloc是函数,c语言提供的库函数,包含在头文件<stdlib>一般在c中使用,对应的是free,不能用delete释放
C++中用new,new和delete是C++提供的内建操作符,不是函数,不需要包含头文件
int *p=new int;   或者  int *p=new int(10);   它在分配内存时可以同时进行赋值的
*p=10;  //赋值
delete p;  new 用完后必须用delete删除,不能用free释放


int *p=new int[10],连续分配10个int,就如在堆里做了一个数组 ,连续的10个int   (用new来创建数组)
for(int i=0;i<10;i++){
p[i]=i;
}

delete [ ]p;//一个要加一个括号,告诉C++删除的是一个数组


如果想要分配的不是一个基础类型(int 等。。),如类等,只能用new来分配内存



<2>、C++支持三种头文件,1.传统的C头文件,如<stdio.h>

2.也支持<stdio.hpp>
3.<stdio>


<3>、20140807--volatile关键字  C++不会帮忙自行优化程序



<4>、自己定义一个命名空间:

namespace zhujy{


void func(int i){

cout<<"zhujy func"<<endl;
}
}


namespace itcast{


void func( int i){
cout<<"itcast func"<<endl;
}
}


using namespace itcast;    //使用命名空间
func(10);


无名命名空间(很少用):
namespace {  //函数只能在这个空间内用了


void func(int i){
cout<<"zhujy func"<<endl;
}
}



<5>、如果一个类成员变量和一个全局变量重名,那么在类成员函数当中默认访问的是类的成员变量.
在类的内部访问全局标识,关键字::
如   ::a, 则这个a是全局变量a,而不是类成员a


<6>、初始化成员列表只能在构造函数使用
***const成员必须用初始化成员列表赋值 ,因为在类里是不能直接赋值的,类不占内存空间
***引用数据成员必须用初始化成员列表赋值



<7>、平常的实例对象,都是在栈里构造对象的。在堆里构造对象,用new。
man *p=new man; //调用没有对象的构造函数,在堆里面实例化一个对象(为nam类分配内存,就是实例化??)
man *p=new man("hello",100); //调用有参数的构造函数
delete p;  //释放内存空间,会自动调用析构函数(malloc不会自动调用析构函数)


<8>、(20140807--4--46:00)拷贝构造函数:指向自己的引用
man::man(const man &it)



<9>、explicit man( const char *s,int i)

明确的告诉系统就要用我自己写的这个构造函数,不要自己造一个出来



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值