Coursera C++程序设计——第二周笔记

第二课——引用

int n = 100;
const int &r = n;
r = 200;   //编译错
n = 300;   //没问题

不能通过常引用去修改其引用的内容

第三课——const关键字

  1. 定义常量指针
  • 不能通过常量指针修改其指向的内容
int n, m;
const int *p = &n;
*p = 5;    //编译错
n = 4;     //OK
p = &m;    //OK,常量指针可以指向其他内容(指针常量不可)
  • 不能把常量指针赋值给一般指针
const int * p1;
int * p2;
p1 = p2;        //OK
p2 = p1;        //error
p2=(int *) p1;  //OK,强制类型转换
  • tips: 函数参数为常量指针时,可以避免函数内部不小心改变参数指针所指向的内容
void MyPrintf(const char * p)
{
  strcpy( p, "this");  //编译错
  printf("%s", p);     //OK
}

第三课——动态内存分配

new、delete

int * p = new int;
* p = 5;
delete p;
delete p;   //异常

int * p = new int[20];   //动态分配数组
p[0] = 1;
delete []p;              //释放数组要加[]

第三课——函数重载

多个函数名字相同,返回值相同,参数列表类型不相同、或参数个数不同。

注意:参数列表相同、函数名相同,仅返回值不同,为函数定义,不是重载。

第三课——函数缺省参数

C++中定义函数时可以让最右边的连续若干个参数有缺省值,调用时若相应位置不写参数,参数默认为缺省值。

目的:提高函数的可扩充性;若某个写好的饿函数需要添加新的参数,而原先调用函数的语句未必需要使用新增的参数,则可以避免对原来调用函数语句的修改。

第四课——面向对象程序设计方法

对象的内存分配

访问类的成员函数和成员变量

  • 对象名.成员名
CRectangle r1, r2;
r1.width = 5;
r2.Init(3, 4);
  • 指针->成员名
CRectangle r1, r2;
CRectangle * p1 = & r1;
CRectangle * p2 = & r2;
p1 -> width =5;
p2 -> Init(3, 4);
  • 引用名.成员名
CRectangle r2;
CRectangle & rr = r2;
rr.width = 5;
rr.Init(3, 4);   //r2的值变化

类成员的可访问范围

类中,缺省为私有成员;结构体中缺省为共有

猜你喜欢

转载自blog.csdn.net/u011947630/article/details/86094678
今日推荐