typedef struct Test {
int score;
std::string name;
std::vector<int> arr;
} Test;
typedef struct Test2 {
Test2();
int score;
std::string name;
std::vector<int> arr;
} Test2;
int main()
{
Test t; // 成员不会初始化, 初值是内存残留值
Test* tp1 = new Test; // 成员不会初始化, 初值是内存残留值
Test* tp2 = new Test(); // 调用了默认构造函数, 成员被初始化
Test2 t2; // 调用了默认构造函数, 成员被初始化
Test2 t2p = new Test2; // 调用了默认构造函数, 成员被初始化
Test2* t2p2 = new Test2(); // 调用了默认构造函数, 成员被初始化
return 0;
}
[C++]结构体声明方式决定内容是否初始化
于 2022-03-01 13:33:15 首次发布

这篇博客讨论了C++中结构体`Test`和`Test2`的初始化方式,包括默认构造函数的使用和内存残留值的影响。通过示例展示了`new`运算符在不同情况下的对象初始化状态,强调了初始化的重要性。
1268

被折叠的 条评论
为什么被折叠?



