相关疑难解决方法(0)

C++中访问器方法(getter和setter)的约定

关于C++中的访问器方法的几个问题已经被问到,但没有一个能够满足我对这个问题的好奇心.

我试图尽可能避免使用访问器,因为像Stroustrup和其他着名的程序员一样,我认为一个类很多都是OO的标志.在C++中,我可以在大多数情况下为类添加更多的责任或使用friend关键字来避免它们.但在某些情况下,您确实需要访问特定的班级成员.

有几种可能性:

1.根本不要使用存取器

我们可以公开相应的成员变量.这在Java中是不行的,但对于C++社区似乎没问题.但是,我有点担心的情况是一个显式副本或一个对象的只读(const)引用应该返回,是夸大了吗?

2.使用Java样式的get/set方法

我不确定它是否来自Java,但我的意思是:

int getAmount(); // Returns the amount
void setAmount(int amount); // Sets the amount
Run Code Online (Sandbox Code Playgroud)

3.使用客观的C风格的get/set方法

这有点奇怪,但显然越来越普遍:

int amount(); // Returns the amount
void amount(int amount); // Sets the amount
Run Code Online (Sandbox Code Playgroud)

为了使其工作,您必须为您的成员变量找到不同的名称.有些人附加下划线,其他人加上"m_".我也不喜欢.

你使用哪种风格?为什么?

c++ getter setter accessor

72
推荐指数
4
解决办法
7万
查看次数

标签 统计

accessor ×1

c++ ×1

getter ×1

setter ×1