由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - C++ Pitfalls , you may not know [转载]
相关主题
C++ 普及课程 (视频): Multiple Inheritance请教个Bloomberg 的 C++ 题目
问个过时的问题请叫一个 template class constructor 的问题
copy constructor问题。c++ question
C++ vectorwhat is the difference?
两道Java面试问题C++ Q20: construction and inheritance
以前是java 程序员,要面试.net 程序员C++ 中 myobject * a =new myobject[n] 的问题
Re: 咱们说tf 这个坑 那个坑的 英文怎么说?Test your C++ knowledge...
请教几个C++问题A try-catch problem in C++
相关话题的讨论汇总
话题: string话题: pitfalls话题: c++话题: worthless
进入Programming版参与讨论
1 (共1页)
d****n
发帖数: 1637
1
Constructor pitfalls
Example:
int main()
{ string a("Hello");
string b();
string c = string("World");
// ...
return 0;
}
Pitfall:
string b();
This expression does not construct an object b of type string. Instead, it
is the prototype for a function b with no arguments and return type string.
Moral: Remember to omit the ( ) when invoking the default constructor.
The C feature of declaring a function in a local scope is worthless since it
lies about the true scope. Most programmers place all prototypes in header
files. But even a worthless feature that you never use can haunt you.
readmore at : http://www.horstmann.com/cpp/pitfalls.html
a**e
发帖数: 64
2
这种错误确实很难注意到。不过正常情况下编译的时候一般都会发现的吧。正面想这个
就是个feature,不用include那么的多的header,避免交叉include。
a**e
发帖数: 64
3
看了一边全文。里面提到的很多pitfalls还是很有道理的,不多留意的话很容易就埋下
bug。
d**********x
发帖数: 4083
4
read
Imperfect C++

【在 a**e 的大作中提到】
: 看了一边全文。里面提到的很多pitfalls还是很有道理的,不多留意的话很容易就埋下
: bug。

M********n
发帖数: 4650
5
这应该是C留下来的问题,C++为了兼容,没办法。严格C++的函数原形应该写成
string b(void);

【在 d****n 的大作中提到】
: Constructor pitfalls
: Example:
: int main()
: { string a("Hello");
: string b();
: string c = string("World");
: // ...
: return 0;
: }
: Pitfall:

t****t
发帖数: 6806
6
事实上, C++不建议无参数函数里写void.

【在 M********n 的大作中提到】
: 这应该是C留下来的问题,C++为了兼容,没办法。严格C++的函数原形应该写成
: string b(void);

1 (共1页)
进入Programming版参与讨论
相关主题
A try-catch problem in C++两道Java面试问题
请教一个MS Linked List的问题以前是java 程序员,要面试.net 程序员
Re: 110道C++面试题目,你会做多少? (转载)Re: 咱们说tf 这个坑 那个坑的 英文怎么说?
C++问题,confusing...请教几个C++问题
C++ 普及课程 (视频): Multiple Inheritance请教个Bloomberg 的 C++ 题目
问个过时的问题请叫一个 template class constructor 的问题
copy constructor问题。c++ question
C++ vectorwhat is the difference?
相关话题的讨论汇总
话题: string话题: pitfalls话题: c++话题: worthless