c++学习总结(第二篇)

来源:互联网 发布:mac调整鼠标大小 编辑:程序博客网 时间:2024/06/05 13:30

1、类的定义,以Sales_item为例

class Sales_item{

public:

//Sales_item对象所调用的操作

private:

std::string isbn;

unsigned units_sold;

double revenue;

};//分号不能丢失

类定义以关键字class开始,其后是该类的名字标识符,类体位于花括号里面,花括号后面必须跟一个分号

类体可以为空,类体定义了组成该类型的数据的操作,这些操作和数据是类的一部分,也称为类的成员。操作成为成员函数,而数据则成为数据成员。

2、类的数据成员

定义类的数据成员和定义普通变量有些相似,有个非常重要的区别就是:不能把类成员的初始化作为其定义的一部分。当定义数据成员时,只能制定该数据成员的名字和类型,类不是在类定义里定义数据成员时初始化数据成员,而是通过构造函数的特殊成员函数控制初始化。(PS:构造函数后面会说明,我之前学过java,所以知道构造函数就是用于类的初始化,相信各位大神都知道。不明白的人也不要着急,这个c++系列就是一步一步的个人学习总结)

3、访问标号

上面用到的访问标号是public和private,访问标号负责控制使用该类的代码是否可以使用给定的成员(成员包括成员函数和数据成员)。类的成员函数可以使用类的任何成员,而不管其访问级别。访问标号public、private可以多次出现在类定义中。给定的访问标号应用到下一个访问标号出现时为止。

类中public部分定义的成员在程序的任何部分都可以访问,一般把操作放在public部分,这样程序的任何代码都可以执行这些操作。不是类的组成部分的代码不能访问private成员,通过设定Sales_item的数据成员为private,可以保证对Sales_item对象进行操作的代码不能直接操纵其数据成员。

4、使用struct关键字来定义类

c++支持另一个关键字struct,它也可以定义类类型,struct是从c语言中集成过来的。

如果使用class关键字来定义类,那么定义在第一个访问标号前的任何成员都隐式指定为private;如果使用struct关键字,那么这些成员都是默认为public。

可以等效地定义Sales_item类:

struct Sales_item{//这里不是class关键字,而是struct

//无需特别声明public访问标号,默认即public

private:

std::string isbn;

unsigned units_sold;

double revenue;

};//同样也有一个分号结尾

使用class和struct关键字定义类的唯一差别在于默认访问级别:默认情况下,struct的成员为public,而class的成员为private。


个人总结及注意点:

(1)说到类的成员不要仅仅只意识到数据成员,同时还有成员函数。所以要注意c++中成员包括数据成员和成员函数。

(2)struct是c语言中学习过的,当时只知道需要定义一个数据结构的时候要用到struct,想不到它还能够跟c++的class关键字起到相同的作用。这句话“相同的作用”我只是自己感觉,说的不对的地方还请大神指正。

0 0
原创粉丝点击