C++学习笔记

来源:互联网 发布:java jdk32位下载 编辑:程序博客网 时间:2024/05/29 19:21

对象

1、在C++中调用对象不用new。如下例:

class rectangel{public:rectangel(int l,int w){length=l;width=w;}rectangel(){cout<<"构造函数在运行...\n";}int area(){return length*width;}private:int length;int width;};int main(){rectangel a(3,4);cout<<"长方形a的面积为:"<<a.area()<<endl;rectangel b;cout<<"长方形b的面积为:"<<b.area()<<endl;return 0;}

2、对象调用完后就会执行析构函数。例:

class A {public:A(); ~A();};A::A(){cout<<"构造函数执行完毕!\n";}A::~A(){cout<<"析构函数执行完毕!\n";}int main(){A a;return 0;}
打印:

构造函数执行完毕!

析构函数执行完毕!


3、数组对象析构。例:

class A {public:A();~A();};A::A(){cout<<"构造函数执行完毕!\n";}A::~A(){cout<<"析构函数执行完毕!\n";}int main(){A a[2];return 0;}
打印:

构造函数执行完毕!

构造函数执行完毕!

析构函数执行完毕!

析构函数执行完毕!

指针

4、指针的实际值。例:

int main(){int i=1;cout<<&i<<endl;return 0;}
打印:002CFD0

int main(){int a;    int *p;    p=&a;    cout<<&a<<endl;    cout<<p<<endl;return 0;}
打印:0022FB38

   0022FB38

指针初始化。例:

int main(){int *p=0;cout<<p<<endl;return 0;}
打印:00000000

为止指针赋值。例:

int main(){float *p=0;   float a=3.14f;   p=&a;return 0;}


int main(){int a=1;int *p;p=&a;cout<<*p<<endl;cout<<a<<endl;cout<<p<<endl;cout<<&a<<endl;return 0;}
打印:

1

1

005DFEFC

005DFEFC

重点:

int main(){int i;int *p=0;cout<<"i的地址为:"<<&i<<endl;cout<<"p的值为:"<<p<<endl;cout<<"p的内存地址为:"<<&p<<endl;/*cout<< "*p的值为" << *p << endl;*/因为没有赋值所以无法查看*pi=3;cout<<"i的地址为:"<<&i<<endl;p=&i;cout<<"p的值为:"<<p<<endl;cout<<"p的内存地址为:"<<&p<<endl;cout << "*p的值为" << *p << endl;return 0;}
打印:

重点:用指针修改放在i中的数据

typedef unsigned short int ut;int main(){ut i;ut *p=0;i=5;p=&i;cout<<"i="<<i<<endl;cout << "&i=" << &i << endl;cout<<"*p="<<*p<<endl;cout << "p=" << p << endl;cout << "&p=" << &p << endl;cout<<"用指针来修改放在i中的数据...\n";*p=90;cout<<"i="<<i<<endl;cout << "&i=" << &i << endl;cout<<"*p="<<*p<<endl;cout << "p=" << p << endl;cout << "&p=" << &p << endl;i=9;cout<<"i="<<i<<endl;cout << "&i=" << &i << endl;cout<<"*p="<<*p<<endl;cout << "p=" << p << endl;cout << "&p=" << &p << endl;return 0;}
打印:



更换地址更换值

int main(){int i=10;int j=20;int *p=&i;//初始化时可以这样赋值cout<<"i:"<<"\t"<<i<<endl;cout<<"&i"<<"\t"<<&i<<endl;cout<<"j:"<<"\t"<<j<<endl;cout<<"&j"<<"\t"<<&j<<endl;cout<<"p"<<"\t"<<p<<endl;cout<<"*p"<<"\t"<<*p<<endl;p=&j;cout<<"更换地址后\n";        cout<<"i:"<<"\t"<<i<<endl;cout<<"&i"<<"\t"<<&i<<endl;cout<<"j:"<<"\t"<<j<<endl;cout<<"&j"<<"\t"<<&j<<endl;cout<<"p"<<"\t"<<p<<endl;cout<<"*p"<<"\t"<<*p<<endl;return 0;}
打印:

分配堆空间:

int main(){int *p=new int;//创建一个堆并分配内存*p=4;cout<<*p<<endl;delete p;//释放内存空间cout<<*p<<endl;p=0;p=new int;*p=8;cout<<*p<<endl;delete p;return 0;}
打印:



原创粉丝点击