C++学习笔记(一)

来源:互联网 发布:算法经典书籍推荐 编辑:程序博客网 时间:2024/05/22 10:44

      1.引用数据类型

  C++提供了一种与指针密切相关的数据类型-------引用。引用是一个变量的别名,其本质就是计算机不会为一个引用类型变量分配内存空间,而只是使引用类型的变量与与之关联的变量指向同一内存空间,也鉴于此引用在定义的时候必须初始化。也可以理解为引用就是一个指向该变量的指针,与一般指针不同的是引用一旦初始化其指向的地址就不会再变了;

        看一下程序:

#include <iostream.h>
void main(void){
    
int a=5;
    
int &ra=a;
    cout
<<"a="<<a<<endl;
    cout
<<"ra="<<ra<<" ";
    cout
<<"a的地址是"<<&a<<endl;
    cout
<<"ra的地址是"<<&ra<<endl;
    
int b=8;
    ra
=b;
    cout
<<"a="<<a<<endl;
    cout
<<"b="<<b<<endl;
    cout
<<"ra="<<ra<<" ";
    cout
<<"a的地址是"<<&a<<endl;
    cout
<<"b的地址是"<<&b<<endl;
    cout
<<"ra的地址是"<<&ra<<endl;
}

程序输出结果

a=5
ra=5
a的地址是0x0012FF7C
ra的地址是0x0012FF7C
a=8
b=8
ra=8
a的地址是0x0012FF7C
b的地址是0x0012FF74
ra的地址是0x0012FF7C

由此看出对引用的改变也直接影响的变量的改变,而引用的地址始终是不变的,总是与之关联的变量的地址。

2.拷贝构造函数

           拷贝构造函数是一种特殊的构造函数,它的功能是用已有的类对象来初始化一个同类的对象,其形式如下:

          <类名>::<拷贝构造函数名>(const <类名>&<引用名>)

          看一下程序

 

#include <iostream.h>
class CDate{
public:
    CDate(
int year=2007,int month=6,int day=21){
        cout
<<"调用构造函数"<<endl;
        nYear
=year;nMonth=month;nDay=day;
        cout
<<nYear<<"-"<<nMonth<<"-"<<nDay<<endl;
    }

    CDate(
const CDate &ymd){
        cout
<<"调用拷贝构造函数"<<endl;
        cout
<<ymd.nYear<<"-"<<ymd.nMonth<<"-"<<ymd.nDay<<endl;
    }

private:
    
int nYear,nMonth,nDay;
}
;
void main(){
    CDate day1;
    CDate day2(day1);
}

程序输出结果:

调用构造函数
2007-6-21
调用拷贝构造函数
2007-6-21

原创粉丝点击