声明指针/引用变量的首选方法?

时间:2011-07-26 05:25:50

标签: c++ pointers reference declaration

注意:我正在使用g ++编译器(我听说这是非常好的,并且应该非常接近标准)。

不是试图开始语法战争,而只是一个随机的问题......声明指针的理想方式是什么?

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是函数签名的一部分,不像大多数来源说它只取决于参数类型和返回类型)。

这是对的吗?我应该关心吗?

4 个答案:

答案 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;

所以,这对我来说已经足够了。