C++ 学习笔记 二

1.指针与引用

引用只能在定义时被初始化一次,之后不可变;指针可变;

引用不能为空,指针可以为空;

程序为指针变量分配内存区域,而引用不需要分配内存区域。

引用没有 const,指针有 const;

引用必须在创建时被初始化。指针可以在任何时间被初始化。

2.数据结构

// 声明一个结构体类型

Books struct Books

{

char title[50];

char author[50];

char subject[100];

int book_id; };

Books Book1; // 定义结构体类型 Books 的变量 Book1

    sprintf(Book1.title,"%s",a);

 strcpy( Book1.title, "C++ 教程");

 

struct Books *struct_pointer;
struct_pointer = &Book1;

为了使用指向该结构的指针访问结构的成员,您必须使用 -> 运算符,如下所示:

struct_pointer->title;

cout << "书标题 : " << book->title <<endl;

下面是一种更简单的定义结构的方式,您可以为创建的类型取一个"别名"。例如:

typedef struct Books
{
   char  title[50];
   char  author[50];
   char  subject[100];
   int   book_id;
}Books;
现在,您可以直接使用 Books 来定义 Books 类型的变量,而不需要使用 struct 关键字。下面是实例:
Books Book1, Book2;

 

3.static 修饰符

 

1.当我们声明类的成员为静态时,这意味着无论创建多少个类的对象,静态成员都只有一个副本。我们不能把静态成员的初始化放置在类的定义中,但是可以在类的外部通过使用范围解析运算符 :: 来重新声明静态变量从而对它进行初始化

// 初始化类 Box 的静态成员
int Box::objectCount = 0;

2.静态成员函数:

静态成员函数即使在类对象不存在的情况下也能被调用,静态函数只要使用类名加范围解析运算符 :: 就可以访问。

静态成员函数只能访问静态成员数据、其他静态成员函数和类外部的其他函数。

不能访问类的 this 指针。您可以使用静态成员函数来判断类的某些对象是否已被创建

静态成员变量在类中仅仅是声明,没有定义,所以要在类的外面定义,实际上是给静态成员变量分配内存。如果不加定义就会报错,初始化是赋一个初始值,而定义是分配内存。

 //声明
static int objectCount;
// 初始化类 Box 的静态成员   其实是定义并初始化的过程
int Box::objectCount = 0;
//也可这样 定义却不初始化
//int Box::objectCount;

静态成员函数与普通成员函数的区别:

  • 静态成员函数没有 this 指针,只能访问静态成员(包括静态成员变量和静态成员函数)。
  • 普通成员函数有 this 指针,可以访问类中的任意成员;而静态成员函数没有 this 指针。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值