您的位置:首页 > 编程语言 > C语言/C++

C++的类、对象与成员

2016-04-02 22:32 253 查看
C++的类、对象与成员 1.声明一个类类是用户自定义的类型,如果程序中要用到类,必须先声明定义。 类声明的语法形式如下: class 类名称
{
public:
公有成员(外部接口)
protected:
保护型成员
private:
私有成员
}Class为关键字, 声明一个类时要用到它 。 当然,这里的public、protected和private关键字可以任意换顺序,比如先声明私有成员再声明其他的也可以,每个关键字也可以出现多次,比如声明一些public的成员,后面又出了个public声明了另一些成员,也是可以的,但是一般我们还是按照上面的形式来声明类。2、创建一个对象定义一个对象时,开头用类名,空一格,再编写要定义的对象名即可。
如:Computer ThinkPad;类是创建对象的模板,一个类可以创建多个对象,每个对象都是类类型的一个变量;创建对象的过程也叫类的实例化。每个对象都是类的一个具体实例(Instance),拥有类的成员变量和成员函数。与结构体一样,类只是一种复杂数据类型的声明,不占用内存空间。而对象是类这种数据类型的一个变量,占用内存空间。类与对象的区别:类只是个抽象名词,而对象则是实际的个体。 3、对象与类里成员的关系
对象可以用点运算符“.”来访问该对象的数据成员并给它们赋值,使用时不能遗漏。
如:ThinkPad . CPU
注意:
》不要混淆类和对象,不要给类赋值。
》对象只能类中已经存在的成员。

4、类成员的访问控制
protect,public,private 的区别?
public是这个程序的每一处都能访问,无论是在本类内还本类外
protected则是在本类内和友类,子类中才能访问
private则只能在本类内才能访问,其它地方则不能

public修饰的成员变量
在程序的任何地方都可以被访问,就是公共变量的意思,不需要通过成员函数就可以由类的实例直接访问
private修饰的成员变量
只有类内可直接访问,私有的,类的实例要通过成员函数才可以访问,这个可以起到信息隐藏
protected是受保护变量
类内和子类可直接访问,也就是说,基类中有protected成员,子类继承于基类,那么也可以访问基类的protected成员,要是基类是private成员,则对于子类也是隐藏的,不可访问
5、成员函数的声明和定义
每个成员函数都有它的声明部分和定义部分。声明部分仅是说明该函数的参数类型以及返回值类型定义部分则是对函数的功能进行了实现类是一种数据类型,它类似于普通的数据类型,但是又有别于普通的数据类型。类这种数据类型是一个包含成员变量和成员函数的一个集合。
类的成员变量和普通变量一样,也有数据类型和名称,占用固定长度的内存空间。但是,在定义类的时候不能对成员变量赋值,因为类只是一种数据类型,本身不占用内存空间,而变量的值则需要内存来存储。
类的成员函数也和普通函数一样,都有返回值和参数列表,它与一般函数的区别是:成员函数是一个类的成员,出现在类体中,它的作用范围由类来决定;而普通函数是独立的,作用范围是全局的,或位于某个命名空间内。 但当成员函数定义在类外时,就必须在函数名前面加上类名予以限定。
::被称为域解析符(也称作用域运算符或作用域限定符),用来连接类名和函数名,指明当前函数属于哪个类。
成员函数必须先在类体中作原型声明,然后在类外定义,也就是说类体的位置应在函数定义之前,否则编译时会出错。虽然成员函数在类的外部定义,但在调用时会根据在类中声明的函数原型找到函数的定义(函数代码),从而执行该函数。 6、普通内联函数
当定义了一个函数后,编译器就会在内存中为其创建一个指令集,当我们条用这个函数地,程序就会跳转到指令集处。当该函数运行完毕后,程序又会返回到原来执行调用该函数语句的下一行执行。 假如对该函数执行上百次调用,就要来回跳转上百次,这会影响到程序的执行效率。 C++中解决的方法,是使用关键字inline声明函数,如:inline int func ( ) ;则编译器将不会创建真正的函数,而是将这个内联函数的所有代码复制到调用函数中,这样程序在执行该调用函数时就不需要来回跳转,自然就提高了程序运行的效率。
不过,假如调用内联函数也超过上百次时,其代码要复制上百次,这样增大了代码的体积,会降低代码执行的效率。所以说这是一把双刃剑,如果函数很小,多次复制也增加没多少体积,可以视情况适当使用内联函数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: