我是来自C#的C++的新手,但我确实更喜欢C++.
我有一个抽象类,定义了两个常量字符串(不是静态的).我想知道是否const char*会有更好的选择.我仍然掌握着C++标准,但我只是觉得在这种特殊情况下我没有任何理由需要使用std :: string(没有追加或编辑字符串,只是写入控制台通过printf).
我应该坚持std::string每一个案例吗?
在每种情况下我都应该坚持使用std :: string吗?
是.
除了编写高性能多线程日志记录库的一些边缘情况之外,你真的需要知道何时会发生内存分配,或者可能是在一些低级协议中摆弄数据包头中的各个位/驱动程序.
问题是你从一个简单的char开始,然后你需要打印它,所以你使用printf(),然后可能是一个sprintf()来解析它,因为std :: stream对于只有一个int to string是一个痛苦.而你最终得到一个不安全且不可维护的混合oc c/c ++
我会坚持使用std::string而不是const char*,因为大多数内置的 C++ 库都使用字符串而不是字符数组。std::string有很多内置的方法和设施,可以在操作字符串时赋予程序员很大的权力。
| 归档时间: |
|
| 查看次数: |
19978 次 |
| 最近记录: |