首页 百科知识 ++类的信息隐藏机制

++类的信息隐藏机制

时间:2022-09-22 百科知识 版权反馈
【摘要】:在类内部,无论成员变量或成员函数被声明为private、public或者protected属性,均是可以互相访问的,无访问权限限制。回到例1,在主函数中,声明book的对象Alice,调用book类中的函数setprice为Alice这本书设置价格,其价格被设置为29.9元。之后再调用book类中的getprice函数,将其价格打印出来。


在类内部,无论成员变量或成员函数被声明为private、public或者protected属性,均是可以互相访问的,无访问权限限制。

在类外,通过对象无法访问private和protected属性的成员变量和成员函数,而仅可以访问public属性的成员变量和成员函数。

[例1] 定义一个 book 类来说明访问权限:

#include<iostream>

using namespace std;


class book

{

public:

    void setprice(double a);

    double getprice();

private:

    double price;

};


void book::setprice(double a)

{

    price = a;

}


double book::getprice()

{

    return price;

}


int main()

{

    book Alice;

    Alice.setprice(29.9);

    cout<<"The price of Alice is $"<<Alice.getprice()<<endl;   

    return 0;

}

在例 1 中,声明了一个book类,该类中有一个成员变量price,表示书本的价格属性,另外有两个成员函数,分别是用于设置价格的setprice函数和获取书本价格的getprice函数。

类中成员变量price被设置成了private属性,而两个成员函数则设置成了public属性。声明为private属性的成员变量或函数,在类外是不可访问的,而声明为public属性的成员变量或函数,在类外可以访问。

另外还有一个关键字protected,声明为protected属性的成员变量或成员函数,在类外也是不可以访问的,但是其派生类内部确实可以访问的,这在后面将会重新介绍,在此处,我们只需要知道protected在类外无法访问即可。

回到例1,在主函数中,声明book的对象Alice,调用book类中的函数setprice为Alice这本书设置价格,其价格被设置为29.9元。之后再调用book类中的getprice函数,将其价格打印出来。

在例1中,我们不能直接访问price这个成员变量,因为其属性被设置为private了,但是类中提供了两个public属性的成员函数可以供我们操作price这个变量。

除了像例1那样声明book类以外,按照例2及例3那样声明变量也都是可以的,类内部成员变量及函数声明变量顺序可以是任意的。

[例2] 成员变量和成员函数无声明顺序要求:

class book

{

private:

   double price;

public:

   void setprice(double a);

   double getprice();

};



在类内部,无论成员变量或成员函数被声明为private、public或者protected属性,均是可以互相访问的,无访问权限限制。

在类外,通过对象无法访问private和protected属性的成员变量和成员函数,而仅可以访问public属性的成员变量和成员函数。

[例1] 定义一个 book 类来说明访问权限:

#include<iostream>

using namespace std;


class book

{

public:

    void setprice(double a);

    double getprice();

private:

    double price;

};


void book::setprice(double a)

{

    price = a;

}


double book::getprice()

{

    return price;

}


int main()

{

    book Alice;

    Alice.setprice(29.9);

    cout<<"The price of Alice is $"<<Alice.getprice()<<endl;   

    return 0;

}

在例 1 中,声明了一个book类,该类中有一个成员变量price,表示书本的价格属性,另外有两个成员函数,分别是用于设置价格的setprice函数和获取书本价格的getprice函数。

类中成员变量price被设置成了private属性,而两个成员函数则设置成了public属性。声明为private属性的成员变量或函数,在类外是不可访问的,而声明为public属性的成员变量或函数,在类外可以访问。

另外还有一个关键字protected,声明为protected属性的成员变量或成员函数,在类外也是不可以访问的,但是其派生类内部确实可以访问的,这在后面将会重新介绍,在此处,我们只需要知道protected在类外无法访问即可。

回到例1,在主函数中,声明book的对象Alice,调用book类中的函数setprice为Alice这本书设置价格,其价格被设置为29.9元。之后再调用book类中的getprice函数,将其价格打印出来。

在例1中,我们不能直接访问price这个成员变量,因为其属性被设置为private了,但是类中提供了两个public属性的成员函数可以供我们操作price这个变量。

除了像例1那样声明book类以外,按照例2及例3那样声明变量也都是可以的,类内部成员变量及函数声明变量顺序可以是任意的。

[例2] 成员变量和成员函数无声明顺序要求:

class book

{

private:

   double price;

public:

   void setprice(double a);

   double getprice();

};



在类内部,无论成员变量或成员函数被声明为private、public或者protected属性,均是可以互相访问的,无访问权限限制。

在类外,通过对象无法访问private和protected属性的成员变量和成员函数,而仅可以访问public属性的成员变量和成员函数。

[例1] 定义一个 book 类来说明访问权限:

#include<iostream>

using namespace std;


class book

{

public:

    void setprice(double a);

    double getprice();

private:

    double price;

};


void book::setprice(double a)

{

    price = a;

}


double book::getprice()

{

    return price;

}


int main()

{

    book Alice;

    Alice.setprice(29.9);

    cout<<"The price of Alice is $"<<Alice.getprice()<<endl;   

    return 0;

}

在例 1 中,声明了一个book类,该类中有一个成员变量price,表示书本的价格属性,另外有两个成员函数,分别是用于设置价格的setprice函数和获取书本价格的getprice函数。

类中成员变量price被设置成了private属性,而两个成员函数则设置成了public属性。声明为private属性的成员变量或函数,在类外是不可访问的,而声明为public属性的成员变量或函数,在类外可以访问。

另外还有一个关键字protected,声明为protected属性的成员变量或成员函数,在类外也是不可以访问的,但是其派生类内部确实可以访问的,这在后面将会重新介绍,在此处,我们只需要知道protected在类外无法访问即可。

回到例1,在主函数中,声明book的对象Alice,调用book类中的函数setprice为Alice这本书设置价格,其价格被设置为29.9元。之后再调用book类中的getprice函数,将其价格打印出来。

在例1中,我们不能直接访问price这个成员变量,因为其属性被设置为private了,但是类中提供了两个public属性的成员函数可以供我们操作price这个变量。

除了像例1那样声明book类以外,按照例2及例3那样声明变量也都是可以的,类内部成员变量及函数声明变量顺序可以是任意的。

[例2] 成员变量和成员函数无声明顺序要求:

class book

{

private:

   double price;

public:

   void setprice(double a);

   double getprice();

};



在类内部,无论成员变量或成员函数被声明为private、public或者protected属性,均是可以互相访问的,无访问权限限制。

在类外,通过对象无法访问private和protected属性的成员变量和成员函数,而仅可以访问public属性的成员变量和成员函数。

[例1] 定义一个 book 类来说明访问权限:

#include<iostream>

using namespace std;


class book

{

public:

    void setprice(double a);

    double getprice();

private:

    double price;

};


void book::setprice(double a)

{

    price = a;

}


double book::getprice()

{

    return price;

}


int main()

{

    book Alice;

    Alice.setprice(29.9);

    cout<<"The price of Alice is $"<<Alice.getprice()<<endl;   

    return 0;

}

在例 1 中,声明了一个book类,该类中有一个成员变量price,表示书本的价格属性,另外有两个成员函数,分别是用于设置价格的setprice函数和获取书本价格的getprice函数。

类中成员变量price被设置成了private属性,而两个成员函数则设置成了public属性。声明为private属性的成员变量或函数,在类外是不可访问的,而声明为public属性的成员变量或函数,在类外可以访问。

另外还有一个关键字protected,声明为protected属性的成员变量或成员函数,在类外也是不可以访问的,但是其派生类内部确实可以访问的,这在后面将会重新介绍,在此处,我们只需要知道protected在类外无法访问即可。

回到例1,在主函数中,声明book的对象Alice,调用book类中的函数setprice为Alice这本书设置价格,其价格被设置为29.9元。之后再调用book类中的getprice函数,将其价格打印出来。

在例1中,我们不能直接访问price这个成员变量,因为其属性被设置为private了,但是类中提供了两个public属性的成员函数可以供我们操作price这个变量。

除了像例1那样声明book类以外,按照例2及例3那样声明变量也都是可以的,类内部成员变量及函数声明变量顺序可以是任意的。

[例2] 成员变量和成员函数无声明顺序要求:

class book

{

private:

   double price;

public:

   void setprice(double a);

   double getprice();

};


免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈