C++学习日记-Vs2013

学习笔记
1.如果想在Vs2013中的C语言使用scanf(“”);,可以在最前面加上这句
#define _CRT_SECURE_NO_DEPRECATE//VS不建议使用传统库函数

2.C++的构造函数的写法:

class Time
{
public:
	//默认构造
	Time() :hour(0), minute(0), sec(0), year(1900), month(1), day(1)
	{
		cout << "开始构造1" << endl;
	}
	//Time(int h = 0, int m = 0, int s = 0) :hour(h), minute(m), sec(s), year(0), month(0), day(0)
	//{

	//}
	//有参构造
	Time(int h, int m, int s) :hour(h), minute(m), sec(s), year(0), month(0), day(0)
	{
		cout << "开始构造" << endl;
	}
	~Time()
	{ 
		cout << "开始析构" << endl; 
	}

	void display();
	void getTime();

	int year;
	int month;
	int day;
private:
	int hour;
	int minute;
	int sec;
};

**3.如何输出月份中的5月为05月而不是5月

//添加头文件#include<iomanip>
//只对共有成员对象有效
void setTime(Time&t)
{
	t.year = 2000;
	t.month = 05;
	t.day = 25;

	cout.setf(ios::right);//设置右对齐
	cout.fill('0');//设置填充为0

	cout << t.year << "年";

	cout.width(2);//设置宽度为2 只对下一条输出有用
	cout<< t.month << "月";
	cout.width(2);
	cout<< t.day << "日" << endl;
}

4.类内中的函数在类内定义,类外实现:

//要加上作用域::
void Time::display()
{
	cout << this->hour << "时:" 
		<< this->minute << "分:" 
		<< this->sec << "秒:" << endl;
}

void Time::getTime()
{
	cout << "请分别输入时分秒" << endl;
	cin >> hour>>minute>>sec;
}

5.如何解决编译窗口一闪而过:
在return 0;前面添加system(“pause”);或者getchar();
或者按图片所示 项目-属性-配置属性-链接器-系统
然后按ctrl+F5运行不调试

![在这里插入图片描述](https://img-blog.csdnimg.cn/20210616220727532.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1Nzc0MDcz,size_16,color_FFFFFF,t_70#pic_center
在这里插入图片描述
在这里插入图片描述

6.在Vs中如果使用system(“pause”);然后又想看析构的输出,好像是不行的,应该去掉system(“pause”);
或者去其他编译器,例如DevCpp,或者按照图片所示。


版权声明:本文为qq_45774073原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。