您现在的位置:学赛首页 > 计算机等级考试 > 复习资料 > 正文
二级C++重点难点分析:类与对象[3]
http://www.educity.cn 作者:希赛IT教育研发中心 来源:希赛网 2007年7月11日 发表评论 进入社区
    11.1.3  考点3:类与结构
    

    在C++语言中,结构(struct)也能像类(class)一样有数据成员和成员函数。C++语言的结构和类的区别在于:默认情况下,类的成员是私有的(private),而结构的成员是公有的(public)。

    11.1.4  考点4:数据成员的定义
    

    定义类的数据成员时,应注意以下几点。
    ① 在类体内不能对数据初始化操作,数据初始化由构造函数完成。
    ② 自身类的对象不能作为这个类的数据成员,而自身类的指针或引用则是可以的。
    ③ 当另一个类的对象作为这个类的数据成员时,如果另一个类的定义在后,则需要提前声明。
    请看以下MyClass类数据成员的定义:
    class HisClass;
    class MyClass
    {
    private:
     int data1;    // 正确。
     int data2 = 0;   // 错误。
     MyClass obj1;   // 错误。
     MyClass& obj2;    // 正确。
     MyClass* p;    // 正确。
     HisClass obj3;   // 正确。
     HerClass obj4;   // 错误。
    };

    11.1.5  考点5:成员函数的定义

    类中的成员函数可以有两种定义。
    ① 将成员函数的实现直接写在类中(称之为内联函数)。
    ② 在类的定义体中只写出函数的原型说明,而成员函数实现写在类的定义之外,其定义的一般格式为:
    <返回值类型> <类名>::<成员函数名>(参数说明)
    {
     函数体;
    }
    此处的“::”符号称为作用域运算符,不同的类的成员函数可以具有相同的名字,因此需要用作用域运算符“::”来指明哪个成员函数(数据成员)属于哪个类。成员函数既可以是有参函数,也可以是无参函数。
    在类的成员函数中可以直接访问类的数据成员。但是,如果在成员函数中定义了同名的局部变量时,则必须用作用域运算符“::”来指定,以免混乱。
    在类定义体中实现的函数都是内联函数。在定义体外实现的函数可以通过在函数说明和定义时分别加上inline关键字来表示该函数是内联的,否则均不属于内联函数。
    小技巧:成员函数的实现可以写在类体内,也可以写在类体外。
    本章节内容来自希赛全国计算机等级考试用书《计算机等级考试考点分析、题解与模拟——二级C++语言》。(购书请见 :http://shop.csai.cn/itbook/itbookinfo.asp?lbbh=10032460

[1]  [2]  [3]