前言
//java Biumall biumall_1; //只是定义变量 biumall_1 = new Biumall(); // 此时才初始化 Biumall biumall_2 = new Biumall(101);
看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; }
拷贝构造函数用于通过一个已存在的对象来初始化一个新对象。
当使用等号“=”初始化一个对象,且等号右侧是一个同类型的对象时,会调用拷贝构造函数。
拷贝构造函数通常具有一个指向同类型对象的常量引用参数。
参考文章
《
© 版权声明