C++学习笔记(二十):c++ 成员初始化列表
2024-01-03 11:29:59
- 本章节主要介绍c++类成员初始化的方式及不同方式对性能的影响。
- 一种是在构造函数{}内部进行初始化
-
#include<iostream> #include<string> class Entity { public: int m_X, m_Y; Entity(int x, int y) { m_X = x; m_Y = y; } void PrintVal() { std::cout << "X: " << m_X << " Y: " << m_Y << std::endl; } }; int main() { Entity e(1,2); e.PrintVal(); std::cin.get(); return 0; }
-
另一种是在构造函数的{}外面进行初始化成员变量
-
#include<iostream> #include<string> class Entity { public: int m_X, m_Y; Entity(int x, int y) :m_X(x), m_Y(y) { } void PrintVal() { std::cout << "X: " << m_X << " Y: " << m_Y << std::endl; } }; int main() { Entity e(1,2); e.PrintVal(); std::cin.get(); return 0; }
-
上诉两种初始化方式在特定情形下性能不同,先说结论,建议在任何时候都使用第二种方式进行初始化。原因如下所示:
-
上图中在Entity类{}内部初始化Test,则会执行两次Test的构造函数;
-
上图中在Entity类{}外部初始化Test,则会执行一次Test的构造函数。
文章来源:https://blog.csdn.net/qq_16701727/article/details/135345402
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!