哪一种是最好的写作方式:
string* str
或者:
string *str
其中一个有副作用的缺点吗?
由于
答案 0 :(得分:9)
更喜欢第二个的原因是你一次声明多个变量:
string *str, *foo;
string* str, foo;
这两行不同,第一行声明指针,而第二行声明指向string
和string
的指针。
[FredOverflow评论]这个问题可以通过一些模板魔术来解决; - )
template <typename T>
struct multiple
{
typedef T variables;
};
multiple<string*>::variables str, foo;
答案 1 :(得分:3)
虽然我更喜欢第一种,但有理由更喜欢第二种,请考虑:
string* str, a;
string *str, a;
在最后一种情况下,很明显*
仅适用于str
。然而,使用这样的声明通常被认为是一种不好的风格。
答案 2 :(得分:3)
我这样做:
string *str;
因为这样做会有所不同
string *str, *str2;
您也可以
typedef string* stringPtr;
这样你就可以做到
stringPtr str, str2;
答案 3 :(得分:2)
在C ++中 - 两者都不是 - 这应该是const string& str
。
或者那是const string &str
? HMM。