C++中没有内置的“properties”特性,但是我们可以使用类的getter和setter方法来模拟这种行为
-
语法:
- 普通成员变量:直接访问和修改。
- Properties:通过getter和setter方法访问和修改。
-
封装:
- 普通成员变量:直接暴露给外部,缺乏封装保护。
- Properties:通过getter和setter方法进行访问和修改,可以在方法内部实现一些逻辑,例如参数校验、数据转换等,提高了封装性。
-
控制访问权限:
- 普通成员变量:访问权限由类的访问修饰符决定(public、protected、private)。
- Properties:可以为getter和setter方法分别设置不同的访问权限,例如将getter设置为public,而setter设置为private,从而实现只读属性。
-
扩展性:
- 普通成员变量:当需要在访问或修改成员变量时添加额外逻辑时,需要修改所有使用该成员变量的地方。
- Properties:通过getter和setter方法访问和修改,可以在方法内部添加额外逻辑,而不影响其他代码。
-
兼容性:
- 普通成员变量:直接访问和修改,更符合C++的传统编程习惯。
- Properties:使用getter和setter方法访问和修改,更符合面向对象编程的封装原则。
总结:普通成员变量和Properties都可以用于表示类的状态,但Properties提供了更好的封装性、控制访问权限和扩展性。在实际开发中,根据需求选择合适的方式来表示类的状态。