C++构造函数的分类及调用
两种分类方式:
按参数分类:有参构造和无参构造,无参构造又称默认构造函数。
按类型分为:普通构造和拷贝构造。
三种调用方式:
1.括号法。
2.显示法。
3.隐式转换法。
#include<iostream> using namespace std; class WLM { public: //无参构造函数/默认构造函数 WLM() { cout << "无参构造的调用!" << endl; } //有参构造函数 WLM(int a) { cout << "有参构造的调用!" << endl; age = a; } //拷贝构造函数 WLM(const WLM &wlm) { cout << "拷贝构造的调用!" << endl; age = wlm.age; } //析构函数 ~WLM() { cout << "析构的调用!" << endl; } public: int age; }; //无参构造的调用 void test1() { WLM zjy1; } //有参构造的调用 void test2() { //1.括号法 WLM zjy2; //无参构造的调用不能加(),否则编译器会认为它是一个函数声明 WLM zjy3(10); WLM zjy4(zjy3); //2.显示法 WLM zjy5 = WLM(); WLM zjy6 = WLM(10); //WLM(10)叫做匿名对象 WLM zjy7 = WLM(zjy6); //WLM(zjy6); //错误!不能利用拷贝构造函数初始化匿名对象,否则 编译器会认为它是一个对象声明 //3.隐式转换法 WLM zjy8 = 10; WLM zjy9 = zjy8; cout << zjy9.age << endl; } int _tmain(int argc, _TCHAR* argv[]) { test1(); test2(); system("pause"); return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!