温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C++中在什么时候使用class

发布时间:2021-11-26 15:34:19 来源:亿速云 阅读:221 作者:iii 栏目:大数据

本篇内容介绍了“C++中在什么时候使用class”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

C.2:类包含不变式是使用class定义类,如果数据成员可以独立变更时使用struct定义类。

译者注:不变式可以认为是类的成员必须满足的条件。例如对于std::string来说,长度成员必须等于其管理的字符串长度。

Reason(原因)

可读性。降低理解难度。使用class关键字让程序员意识到需要不变式。这是一个有用的惯例。

译者注:使用class关键字还默认保证了数据成员不会被随意修改,这使维持不变式成为可能。

Note(注意)

不变式是一个对象的成员必须满足的逻辑条件,这些条件由构造函数建立,是public成员函数的前提条件。一旦不变式成立(通常是由构造函数),该对象所有成员函数都可以被调用。不变式可以被非正式的说明(例如通过注释),或者通过Expects(事前条件)正式检查。

如果所有数据成员都可以相互独立地变更,则不可能存在不变式。

Example(示例)

struct Pair {  // the members can vary independently    string name;    int volume;
};

but:

class Date {public:    // validate that {yy, mm, dd} is a valid date and initialize    Date(int yy, Month mm, char dd);    // ...private:    int y;    Month m;    char d;    // day};

译者注:这个例子的不变式是年月日的组合必须有效。

Note(注意)

如果一个类包含私有数据成员,使用者就不能在不使用构造函数的情况下完全初始化该类的对象。因此,类的定义者在提供构造函数的同时,必须定义其含义。这实际上意味着定义者需要定义不变式。

See also(参见):

  • define a class with private data as class

    使用class关键字定义包含私有数据的类。

  • Prefer to place the interface first in a class

    推荐在类的最初定义接口

  • minimize exposure of members

    最小限度暴露成员

  • Avoid protected data

    避免protected类型数据

Enforcement(实施建议)

Look for structs with all data private and classes with public members.

找到所有数据都被定义为私有的结构体和包含公有成员(应为数据成员,译者注)的类。

译者注:所谓原则就是不需要深入思考就可以执行,而效果却会逐渐显现的那些良好实践。

“C++中在什么时候使用class”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI