前言
看C++代码偶尔会有点不适应,尤其是初始化对象时
- //C++
- Biumall biumall_1; //定义并且初始化,调用了Biumall()
- Biumall biumall_2(101); // 调用了Biumall(int age)
本文只是简单记录一下C++初始化类对象,主要是方便自己查阅和回顾。
正文
C++中类初始化对象主要有如下几种。
下面分别简单记录一下。
默认构造函数
- class Biumall {
- public: //必须,C++默认为private
- Biumall() {
- std::cout << "Biumall()--->biumall.com\n";
- }
- };
没带参数也可以不用显示定义构造函数,编译器默认会生成一个,因此上面写法跟下面一样。
- int main()
- {
- //初始化无参构造函数
- Biumall biumall;
- }
C++中,初始化对象,只需要
- Biumall biumall;
就会调用默认的构造函数或者无参构造函数。
带参数的构造函数
- class Biumall {
- public:
- Biumall(int age) {
- std::cout << "Biumall(age)--->biumall.com age : "<< age <<std::endl;
- }
- };
- int main()
- {
- Biumall biumall(5);
- }
拷贝构造函数
- class Biumall {
- private:
- int age;
- public:
- Biumall() {
- age = 5;
- std::cout << "Biumall()--->biumall.com "<< std::endl;
- }
-
- Biumall(const Biumall& biumall) {
- age = biumall.age;
- std::cout << "Biumall(const Biumall& biumall)--->biumall.com " << age << std::endl;
- }
- };
- int main()
- {
- Biumall biumall1;
- Biumall biumall2 = biumall1;
- }
拷贝构造函数用于通过一个已存在的对象来初始化一个新对象。
当使用等号“=”初始化一个对象,且等号右侧是一个同类型的对象时,会调用拷贝构造函数。
拷贝构造函数通常具有一个指向同类型对象的常量引用参数。
参考文章
《
© 版权声明