为什么是字符串 s;将始终导致空字符串
Why is it that string s; will always result in an empty string?
根据许多参考资料,当你编写Myclass C时;它将使用默认的ctor,它不做任何初始化,所以应该把C的成员留作垃圾。那么为什么STL类是值初始化的呢?
编写MyClass C;
时,编译器会生成调用类MyClass
的默认构造函数的代码。"默认构造函数"是可以在没有参数的情况下调用的构造函数,调用它的效果是该构造函数所做的一切。如果让编译器生成默认构造函数,那么,是的,具有内置类型的成员不会被初始化。如果您编写自己的默认构造函数,则可以初始化您认为合适的任何成员。这就是std::string
所做的:它设置字符串对象,以便它保存一个空字符串。
class MyClass {
public:
MyClass() : member(3) {} // default constructor
int member;
};
MyClass C; // C.member has the value 3
相关文章:
- 为什么 sscanf 无法从一个字符串中读取uint64_t和字符?
- 为什么我不能在不创建字符串变量的情况下使用函数的字符串输出
- 为什么这个 c++ 代码打印出长度 5,当我打印出字符串时,程序会自动终止?
- C ++中的StringStream有助于使用向量从字符串中提取逗号分隔的整数,而不是空格分隔的整数,为什么?
- 为什么我不能将字符串::赋回字符串?
- 为什么字符串比较的 == 运算符相对于任一字符串长度线性时间(似乎)?
- 为什么字符串的 move() 会改变内存中底层数据的位置?
- 为什么我的字符串变量没有打印完整的字符串?
- 为什么我的子类不继承父类的字符串?
- C++字符串大小减去整数不是预期值,为什么?
- 为什么我的 cout 在输出中没有显示字符串?
- 为什么在为其分配编号后无法显示我的字符串值?
- 为什么没有访问所有字符串字符?
- 为什么可以将整数分配给字符串变量?
- C++子字符串为什么这样做
- 我的课堂上不能有字符串.为什么
- C++字符串为什么不能用作字符数组
- C++字符串流:接受字符串,但不接受存储在变量中的字符串.为什么?
- 反向字符串:为什么会崩溃
- 溢出字符数组每次都覆盖完全相同的字符串-为什么?