不是试图开始语法战争,而只是一个随机的问题......声明指针的理想方式是什么?
int* pI = 4;
int *pI = 4;
(或者我最喜欢的,我知道它不漂亮,但我喜欢它):
int*pI = 4;
同样的问题代表参考:
int& rI = 4;
int &rI = 4;
或
int&rI = 4;
也许没有正确答案。同样,我应该关心是否将常量整数声明为:
const int I = 4;
或
int const I = 4;
我没关心......我很好。
我喜欢通过在最后一个括号后面加上const来声明const函数的方式。
我认为常量函数具有与类似的非const函数不同的函数签名(即,const-nesss是函数签名的一部分,不像大多数来源说它只取决于参数类型和返回类型)。
这是对的吗?我应该关心吗?
答案 0 :(得分:6)
我更喜欢
int* a;
int& b;
由于以下原因:类型是int *而不是int。对我来说 - 类型属于一起,需要与名称分开。我知道这会引入一些问题
int* a, b;
但这就是为什么我不在一行中声明变量。
除此之外 - 像VJo所说:坚持编码标准。如果你身边的每个人都采取一种方式,那就别做了。
答案 1 :(得分:4)
编码标准可能会告诉您如何声明或定义变量。 除此之外,使用最适合你的任何东西。
答案 2 :(得分:4)
我相信一个常量函数具有与类似的非const函数不同的函数签名(即,const-nesss是函数签名的一部分,不像大多数来源说它只取决于参数类型和返回类型)。
常量函数有一个关键字const
,它附加在它的末尾。
int doSomething() const;
这意味着该函数不会改变类的状态(成员)。
在参数上提及const
意味着该函数不会改变传递给函数的该变量(下例中为param
)的状态。
int doSomething(const int param);
在返回类型应用于函数返回的类型之前提及const
。
const int doSomething();
表示函数返回一个const整数值。
所以是的,你的理解是正确的。并且没有其他方法来声明函数const,除了在最后一个paranthesis之后放置一个const。 另请注意,const成员函数只能在const对象上调用,而非const成员函数可以由const以及该类的非const对象调用。
就声明的方式而言,每个组织都有自己的编码指南,你应该坚持这一点,是的,在编译器优化或处理方面使用你提到的那些结构没有明显的优势。只需按照您的喜好或您的组织要求您遵循的内容。
答案 3 :(得分:2)
Bjarne Stroustrup使用:
int* a;
所以,这对我来说已经足够了。