学习笔记
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运行不调试
;然后又想看析构的输出,好像是不行的,应该去掉system(“pause”);
或者去其他编译器,例如DevCpp,或者按照图片所示。
版权声明:本文为qq_45774073原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。