c++在类的声明中初始化私有成员变量
2021/11/14 14:40:02
本文主要是介绍c++在类的声明中初始化私有成员变量,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
c++在类的声明中初始化私有成员变量
- 之前的学习都没有做博客记录一下,心血来潮想试一下,记录一下自己的学习历程,方便自己复习,大家见笑了。
- 这个做法是突然想到,查了一下确实允许这样的做法,自己随便写的头文件 time.h
class Time { private: int hours = 3; //c++ 11 允许这样的定义 int mins = 2; public: Time(int = 2, int = 3); Time(const Time & a); ~Time(); void show(); Time operator+(const Time & a)const; };
- c++ 11 中允许在类的声明中将私有成员赋值,但是这样做很蠢,我觉得毛用没有,因为类中只有一个默认构造函数,用Time()就不能传参,用Time(int = 2,int = 3)完全也没必要在类的声明中那样做,所以我不会在声明中初始私有成员变量,可能他一定不改变的时候会用?`
下面是类的cpp文件和main函数,我合在一起了
#include <iostream> #include"time.h" using namespace std; Time::Time(int h, int m) { hours = h; mins = m; } Time::Time(const Time & a) { hours = a.hours; mins = a.mins; } Time::~Time() { cout << "Time is over " << hours << mins << endl; } Time Time:: operator+(const Time & a)const { Time sum; sum.hours = hours + a.hours; sum.mins = mins + a.mins; return sum; } void Time::show() { cout << hours << "," << mins << endl; } int main() { Time old; Time new1(1, 2); Time new2(new1); old.show(); new1.show(); Time haha = old + new1; haha.show(); new2.show(); }
结果
- 调用构造函数可以只给一个参数,按声明中参数的顺序排列初始化,给的一个参数就对应第一个,给两个就对应前两个参数
- 函数声明和定义中的参数顺序要一致
这篇关于c++在类的声明中初始化私有成员变量的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享